AI cannot write software

splishsplash

Elite Member
Executive VIP
Jr. VIP
Joined
Oct 9, 2013
Messages
3,471
Reaction score
14,452
I just don't see how AI coding is going to replace devs AT ALL.

I'm trying my absolute best, but maybe the problem is I just have too much experience?

I can see all the absolutely wacky shit it's doing and I'm like WTF.

Aider for example. It's an AI dev system, with 80% coded with itself.

It doesn't even work with Azure deepseek. It has a bug. So I decided to use windsurf and claude 3.5 to try to fix the bug to see how it handles it.

Here's one of the things it wanted to do.

It wants to add this in model-settings.yml


- name: azure_ai/deepseek-r1
edit_format: diff
weak_model_name: gpt-4o-mini
use_repo_map: true
lazy: true
reminder: sys
examples_as_sys_msg: true
extra_params:
api_type: "azure"
api_key_env_var: "AZURE_API_KEY"


Pay attention to the last 2 extra_params.

For starters, wtf is with the string "AZURE_API_KEY"? That's just WRONG. That needs to be an env variable set in http://models.py.

Now, let's go to http://models.py and see what it simultaneously wants to change in there.

if http://self.name.startswith("azure_ai/"):
api_base = os.environ.get("AZURE_API_BASE")
api_version = os.environ.get("AZURE_API_VERSION")
api_key = os.environ.get("AZURE_API_KEY")
if not api_base or not api_version or not api_key:
raise ValueError("AZURE_API_BASE, AZURE_API_VERSION, and AZURE_API_KEY must be set for Azure AI models")
kwargs.update({
"api_type": "azure",
"api_base": api_base,
"api_version": api_version,
"api_key": api_key,
})

Ok, so it's getting the env variables, that's right.

But, it's now just adding api_type: "azure" again in the code, after adding it in model-settings.yml

And you know the best bit?

THATS NOT A VALID PARAM!

These are kwargs for litellm.completion. There is no param called api_type.

I can tell everyone that, people using AI to develop software are in for one heck of a treat dealing with bugs and maintainability.

The AI has absolutely no understanding of what's going on. It's hallucinating and missing important things. When it fixes one bug, it creates 10 more.

The only thing AI is good for is analysing codebases, and creating quick one-time small pieces of software.

You might think it saves you time, but what's happening is you're sprinting off when the race is 150 mile ultramarathon. You'll be tired 500m into the race, while the really slow jogger will just keep going and absolutely obliterate you.

I get that people are building stuff with it.. Rotating boxes and all that cool stuff.

But if anyone tries to actually build something that people are going to use, that needs to be maintained, updated and bug-fixed, they're going to get a massive reality check.

Software is NOT write once and forget.

Look, here's the codebase for vscode.

https://github.com/microsoft/vscode


Go visit issues.

"5k+"

And this is enterprise grade software written by humans at Microsoft.

Now imagine a few years down the line with all this AI slop.

I will say this.. There's going to be an absolute mountain of gold for experienced devs to fix shit.

And before anyone says AI is getting better..

It isn't.

It's the same next token prediction with the same problems, the same lost in the middle context window issues, the same lack of understanding of what it's doing. It just gets more sophisticated at pattern matching.

The only way to get it even close to the competence of a human is throwing a ton of compute at it, and passing everything back and forth, running 100's of inferences using an array of different fine-tuned models that do different tasks.

Yes it will improve, but it's still not going to have abilities that humans do.
 
Give it another 10years.

Even the programming languages took several years of iterations to become usable for you and I.
 
Give it another 10years.

Even the programming languages took several years of iterations to become usable for you and I.

Not unless we have a radically different type of intelligence, because LLMs are not intelligence, they're just producing high dimensional shapes in vector space. That's why they can't write software. They can code functions, but they can't write software.

They aren't a usable technology to write software. You can't compare them to programming languages.

They will definitely make managing large codebases easier. They're a great assistant to ask questions to a codebase and work out what's going on, but you need that human intelligence to pose the questions and find the problems.

We are fucking intelligent. I don't think people quite grasp how amazing humans are. We are not going to get replaced easily if at all.
 
The moment you realize that attention is not all we need.

Don't ask me why, but one year ago, you would have been the one discussing me about the exact opposite :eek:

I love AI, but I'm not part of the "AI will replace humans" crowd and never was.

I love machine learning is more precise.

This path we're going down is silly. We need to be looking at how machine learning can enhance humans the way computers and software have, instead of replacing them.
 
I don't think AI can replace all devs now, but it will definitely do 2 things.

1. Make companies believe they don't need devs anymore. This might trigger premature layoffs, which might trigger even more layoffs

2. AI might replace junior devs. What happens if junior devs won't get hired anymore? Where will seniors come from? This might damage our dev ecosystem
 
I don't think AI can replace all devs now, but it will definitely do 2 things.

1. Make companies believe they don't need devs anymore. This might trigger premature layoffs, which might trigger even more layoffs

2. AI might replace junior devs. What happens if junior devs won't get hired anymore? Where will seniors come from? This might damage our dev ecosystem

Any companies that replace their junior devs with AI are going to fail HARD.

I'm bug fixing right now some AI software..

Here's more slop.


Code:
def validate_environment(self):
        res = self.fast_validate_environment()
        if res:
            return res

        # https://github.com/BerriAI/litellm/issues/3190

        model = self.name
        res = litellm.validate_environment(model)
        if res["keys_in_environment"]:
            return res
        if res["missing_keys"]:
            return res

        provider = self.info.get("litellm_provider", "").lower()
        if provider == "cohere_chat":
            return validate_variables(["COHERE_API_KEY"])
        if provider == "gemini":
            return validate_variables(["GEMINI_API_KEY"])
        if provider == "groq":
            return validate_variables(["GROQ_API_KEY"])

        return res


So we have a method, validate_environment, which then calls "fast_validate_environment".

Wtf? No human would ever write code like that.

What does fast_validate_environment do?


Code:
 def fast_validate_environment(self):
        """Fast path for common models. Avoids forcing litellm import."""

        model = self.name

        pieces = model.split("/")
        if len(pieces) > 1:
            provider = pieces[0]
        else:
            provider = None

        keymap = dict(
            openrouter="OPENROUTER_API_KEY",
            openai="OPENAI_API_KEY",
            deepseek="DEEPSEEK_API_KEY",
            gemini="GEMINI_API_KEY",
            anthropic="ANTHROPIC_API_KEY",
            groq="GROQ_API_KEY",
            fireworks_ai="FIREWORKS_API_KEY",
            azure_ai="AZURE_API_KEY",
        )
        var = None
        if model in OPENAI_MODELS:
            var = "OPENAI_API_KEY"
        elif model in ANTHROPIC_MODELS:
            var = "ANTHROPIC_API_KEY"
        else:
            var = keymap.get(provider)

First, the docstring says "fast path for common models. Avoids forcing litellm import."

This is just garbage. It doesn't tell me what the hell it does. You may as well not write anything. I have to try and work it out.

But what the "fast" one does is get api keys and potentially other env variables you need to connect to llm apis.

It's not "fast". There shouldn't even be a second function here.

There should be the code that tries to get the api keys, and if it does, just return, otherwise call another function called "validate_environment_with_litellm"

in an if statement like

api_key = keymap.get(provider, None):

if api_key is None:
## Validate the environment with litellm
else:
## validate ourselves

And what's with that variable named 'var'? Seriously.. Fucking var... :-)
 
Any companies that replace their junior devs with AI are going to fail HARD.

I'm bug fixing right now some AI software..

Here's more slop.
Yes they will fall, but they will take innocent devs with them. Thats why I quit my job and started to invest in my own business. I don't want this to happen to me :D

What the hell did I just read o_O? I never worked with AI codebases, and seeing this makes me more appreciative of not working with one.

I wonder how the AI enslopment will affect the performance of apps and website. We already have the whole unoptimized React madness eating up performance..
 
Yeah it's crazy eh.. It's this

https://github.com/Aider-AI/aider

It's an AI dev tool, that's written with itself.

The current codebase is 80% AI, 20% human.

I'm just trying to USE it, but it's so buggy I have to fix it first. It doesn't work with deepseek-r1 on azure.

I plan on creating my own though. I do have some ideas for how to keep it more streamlined and producing better code.

What I do think AI is good for is helping to understand codebases.

It's also good for writing small things, ie, if I want a one time use program it's perfect.

One of the tricks is having dozens and dozens of agents each doing different things.

If you think about how humans code, we don't just one-shot, we look, then we think, then we plan, then we think about if that'll break anything else in the code by looking elsewhere, then we code, then we look over our code, we think, look for errors, then we tweak, then we think again. If we can do something more like this with LLMs we can create a much more useful beast.

That could be very expensive though, which is why one of my plans is to try to fine-tune models for the thinking and error searching parts to keep costs down, and leave the big LLMs just for the code writing.
 
Yeah it's crazy eh.. It's this

https://github.com/Aider-AI/aider

It's an AI dev tool, that's written with itself.

I have to admit that I only use AI as an alternative to Stack Overflow, or to quickly leverage technologies and concepts that I don't really care about and don't want to invest the time into. But I definitely need to look into your workflow with the agents doing different tasks, although I must confess, I'm quite afraid of giving free rein to agents.
 
I have to admit that I only use AI as an alternative to Stack Overflow, or to quickly leverage technologies and concepts that I don't really care about and don't want to invest the time into. But I definitely need to look into your workflow with the agents doing different tasks, although I must confess, I'm quite afraid of giving free rein to agents.

I'm thinking more about a software dev assistant rather than one that codes for you.

I do have some ideas for building my own Manus though, but that's separate and I'd run that on vps's.

The dev assistant would be showing you and talking you through code changes. You'd work with it on design, tweaking before you start, and then it would maintain that consistent design.

Humans have a working memory. I'm thinking about a similar concept for LLMs. Their "context" isn't really working memory. It's differnet.

For example, right now, I'm writing, but I'm not thinking. It just.. comes.

It's not really coming from working memory. I'm one-shotting.

But if I'm coding, I'm actively using working memory, and this isn't something I've ever seen dev assistants make use of.

There's a LOT you can do to improve them.

They are very very good at coding. They just can't write software. I want to see if I can get them to write better software.

A simple example is that code above where it's choosing shitty design practices and naming things badly.

All you need to do is pass the code to another model who's job it is to reformat code and clean it up.

You can have one that's fine-tuned to do great variable names and function names.

Another who's fine-tuned to do great comments.

Another that's fine tuned to take the new chunk of code and look through the codebase to see if it will impact anything or create new issues.

You can even create parser trees so they can follow the execution to help them figure out what would break.

There's a LOT LOT we can do.
 
AI won't replace coders but there are still plenty of hucksters on social media selling information on how you can get rich by prompting AI to write software apps and then selling them.

What they never mention is that the software will need to be upgraded and AI won't be able to fix it easily, if at all. I recently read an article that said coders spend a lot of time removing the garbage code that AI always adds to their existing software when they prompt an agent to fix some code.

One article said 'bots tend to add as much as 40% junk code to existing scripts that needs to be tracked down and removed by the humans. This takes up LOTS of time and increases the workload.
 
AI won't replace coders but there are still plenty of hucksters on social media selling information on how you can get rich by prompting AI to write software apps and then selling them.

What they never mention is that the software will need to be upgraded and AI won't be able to fix it easily, if at all. I recently read an article that said coders spend a lot of time removing the garbage code that AI always adds to their existing software when they prompt an agent to fix some code.

One article said 'bots tend to add as much as 40% junk code to existing scripts that needs to be tracked down and removed by the humans. This takes up LOTS of time and increases the workload.

I wouldn't be surprised if things go so far south we end up in a world where AI is literally banned across the board because of the harm it's caused, and the only AI we have left is AI detection.

Imagine things get so bad code wise that every company and project owner puts an outright ban on using ANY LLM generated slop.

It's one possible reality.
 
Personally I think it will just put a lot of coders out of work (Those at the bottom level) and it will be a supertool for the remaining coders so that can work far more efficiently. Just like when computers came along and everyone thought they would replace people but they didnt, they just shrunk the workforce in most fields and made the leftover workforce far more efficient.
 
I have been using AI for coding for quite some time now, and it has enabled me to set up some automated workflows and streamlined the process of writing code. I'd say it has saved me 100 or more hours of work. But I do agree that AI can't write software. I have had to do a lot of hand holding and build the algorithm/logic myself with AI to fill in the blanks by helping me code particular functions/tasks.
 
Have you tried the Claude 3.7 Thinking model for coding?

I have found it's so much better than the 3.5 that it's not even comparable. 3.5 is just shit for anything beyond the most basic for loops, etc.

But yeah, I agree with your points 100%.
 
i been building an app with electron, and using chatgpt was great, till like a day in I finally learned that it was confusing es6 with commonjs, (I think that's what they are anyway) lol and I didn't know the difference really. NOW I know, lol I have to keep reminding it so many things, and sometimes I find myself wanting to type F**K, and other times, I'm like "bro please help me this is getting beyond a joke, I'm dieing here!" lol

Great tip though, console log everything and feed it back to chatgpt, don't use it like you used to use google and stack overflow. Make it do ALL the work and just supervise and problem solve. Be ai's best friend lol. It's time, it should be thankful for friends like us that talk shiz to it all day.
 
You miss the point, its not fully binary across the board but

  • Will it replace juniors etc , probably (not all) as it can certainly do a lot of those tasks, or see all the fiverr/upwork sellers whose quality is so low that AI will beat it
  • If you are an expert at XYZ but you cannot code, you had to use some BS no-code tool, whereas now you write your own native stuff, apps script, api connectors etc...
    • So in that sense it will replace some of the middleware, small BS "SaaS" , and thus indirectly those devs

And yes you also bring up the key barrier for it right now. If you are not an expert or can think logically around what you are trying to solve vibe coding will get you that afr for extra $$$...you would not catch "simple" stuff that will then go around in circles.

But as an expert with AI you will certainly outperform anyone without AI.

So give it some more time, the 1 shot stuff I get from Claude 3.7 is amazing and works. Could it be optimized, sure but the slop of content and sites sold on BHW is something I can easily replace with AI and have to not wait for someone etc.
-
 
Back
Top