Comment by timr
6 days ago
As someone who has spent the better part of today fixing the utter garbage produced by repeated iteration with these supposedly magical coding agents, I'm neither in the camp of the "AI skeptic" (at least as defined by the author), nor am I in the camp of people who thinks these things can "write a large fraction of all the tedious code you’ll ever need to write."
Maybe I'm doing it wrong, but I seem to have settled on the following general algorithm:
* ask the agent to green-field a new major feature.
* watch the agent spin until it is satisfied with its work.
* run the feature. Find that it does not work, or at least has major deficiencies [1]
* cycle through multiple independent iterations with the agent, doing something resembling "code review", fixing deficiencies one at a time [2]
* eventually get to a point where I have to re-write major pieces of the code to extract the agent from some major ditch it has driven into, leading to a failure to make forward progress.
Repeat.
It's not that the things are useless or "a fad" -- they're clearly very useful. But the people who are claiming that programmers are going to be put out of business by bots are either a) talking their book, or b) extrapolating wildly into the unknown future. And while I am open to the argument that (b) might be true, what I am observing in practice is that the rate of improvement is slowing rapidly, and/or the remaining problems are getting much harder to solve.
[1] I will freely grant that at least some of these major deficiencies typically result from my inability / unwillingness to write a detailed enough spec for the robot to follow, or anticipate every possible problem with the spec I did bother to write. T'was ever thus...
[2] This problem is fractal. However, it's at least fun, in that I get to yell at the robot in a way that I never could with a real junior engineer. One Weird Fact about working with today's agents is that if you threaten them, they seem to do better work.
Even on stuff it has no chance of doing on its own, I find it useful to basically git reset repeatedly and start with more and more specific instructions. At the very least it helps me think through my plan better.
Yeah...I've toyed with that, but there's still a productivity maximum where throwing it all away and starting from scratch is a worse idea, probabilistically, than just fixing whatever thing is clearly wrong.
Just to make it concrete, today I spent a few hours going through a bunch of HTML + embedded styles and removing gobs and gobs of random styles the LLMs glommed on that "worked", but was brittle and failed completely as soon as I wanted to do something slightly different than the original spec. The cycle I described above led to a lot of completely unnecessary markup, paired with unnecessary styles to compensate for the crappiness of the original DOM. I was able to refactor to a much saner overall structure, but it took some time and thinking. Was I net ahead? I don't really know.
Given that LLMs almost always write this kind of "assembled from StackOverflow" code, I have precisely 0% confidence that I'd end up in a better place if I just reset the working branch and started from scratch.
It kind of reminds me of human biology -- given billions of years of random evolution you can end up with incredible sophistication, but the end result will be incomprehensible and nearly impossible to alter.
> eventually get to a point where I have to re-write major pieces of the code to extract the agent from some major ditch it has driven into, leading to a failure to make forward progress.
As it stands AI can't even get out of Lt Surge's gym in Pokemon Red. When an AI manages to beat Lance I'll start to think about using it for writing my code :-)
My workflow is similar. While the agent is running, I browse the web or day dream. If I'm lucky, the agent produced correct code (after possibly several cycles). If I'm not, I need to rewrite everything myself. I'm also not in any camp and I genuinely don't know if I'm more or less productive overall. But I think that a disciplined use of a well-integrated agent will make people more productive.
Results can vary significantly, and in my experience, both the choice of tools and models makes a big difference.
It’s a good idea to periodically revisit and re-evaluate AI and tooling. I’ve noticed that many programmers tried AI when, for example, GPT-3.5 was first released, became frustrated, and never gave it another chance—even though newer models like o4-mini are now capable of much more, especially in programming tasks.
AI is advancing rapidly. With the latest models and the right tools, what’s possible today far exceeds what was possible even just a short time ago (3-12 months ago even).
Take a look at Cursor or Windsurf or Roo code or aider to "feed" AI with code and take a look at models like Google Gemini 2.5 Pro, Claude Sonnet 4, OpenAI o4mini. Also educate yourself about agents and MCP. Soon that will be standard for many/every programmer.
I am using all of the models you're talking about, and I'm using agents, as I mentioned.
There is no magic bullet.
Which model? Are you having it write unit tests first? How large of a change at a time are you asking for? How specific are your prompts?
[flagged]
Absurd take. Speed is not the issue! Optimising for speed of production is what got us into the utter quagmire that is modern software.
Lack of correctness, lack of understanding and ability to reason about behaviour, and poor design that builds up from commercial pressure to move quickly are the problems we need to be solving. We’re accelerating the rate at which we add levels to a building with utterly rotten foundations.
God damn it, I’m growing to loathe this industry.
> Lack of correctness, lack of understanding and ability to reason about behaviour, and poor design that builds up from commercial pressure to move quickly are the problems we need to be solving.
So good developers will become amazing with the assistance of ai while the rest will become unemployed and find work elsewhere. So we are healing the industry. Because without ai. The industry is a hell of a lot worse. You only have to look at the replies on HN to see how laughable the industry is.
1 reply →
Why is this line of thinking so common with AI folk? Is it just inconceivable to you that other people have different experiences with a technology that has only become widespread in the past couple years and that by its very nature is non deterministic?
For what it's worth, I basically accept the premise of the GP comment, in the same way that I would accept a statement that "loggers who don't use a chainsaw will be put out of business". Sure, fine, whatever.
I still think the tone is silly and polarizing, particularly when it's replying to a comment where I am very clearly not arguing against use of the tools.
3 replies →
As if going faster is the only goal of a programmer.
Some simulation I worked on for 2 months were in total 400 lines of code. Typing it out was never the bottleneck. I need to understand the code so that when I am studying the code for the next 1 1/2 months I can figure out if the problem is a bug in my code, or the underlying model is wrong.
Or they work with languages, libraries, systems or problem areas where the LLMs fail to perform anywhere near as well as they do for you and me.
About libraries or systems unknown to AI: you can fine tune or RAG LLMs e.g. with a MCP server like Context7 about special knowledge/libraries to make it a more knowledgeable companion when it was not trained so well (or at all) about the topic you need for your work. Also own defined specs etc. help.
1 reply →
Still haven’t seen an example. It’s always the same. People don’t want to give hints or context. The moment you start doing things properly it’s “oh no this is just a bad example. It still can’t do what u do”
3 replies →
The thing is, the AI tools are so easy to use and can be picked up in a day or too by an experienced programmer without any productivity loss
I don't get why people push this LLM fomo. The tools are evolving so fast anyways
I'm an experienced engineer who is AI skeptical overall. I've continued to try these tools as they evolved. Sometimes they're neat, oftentimes they fail spectacularly and sometimes they fail in very pernicious ways.
If it keeps getting better, I'll just start using it more. It's not hard to use, so the FOMO "you have to be using this RIGHT NOW" stuff is just ridiculous.
I simply do not trust accounts made after 2020, let alone last year.
I've not yet been in a position where reading + cleaning up the LLMs bad code was faster and/or produced better code than if I wrote it by hand. I've tried. Every time someone comes up and says "yeah of course you're not using GPT4.7-turbo-plus-pro" I go and give a spin on the newfangled thing. Nope, hasn't happened yet.
I admit my line of work may not be exactly generic crud work, but then again if it's not useful for anything just one step above implementing a user login for a website or something, then is it really gonna take over the world and put me out of a job in 6 months?
Same for me. My last try was with claude code on a fairly new and simple Angular 19 side project. Spew garbage code using the old angular stuff (without signals). Failed to reuse the code that was already here so needed refactor. The features I asked for were simple, so I clearly lost my time prompting + reading + refactoring the result. So I spent the credits and never used it again.
4 replies →
It is absolutely hilarious to read the responses from people who can’t use ai make attempts to justify their ability to code better than ai. These are the people who will be replaced. They are fighting so hard against it instead of learning how to use it.
“I wrote 400 lines of code I don’t understand and need months to understand it because ai obviously cant understand it or break it down and help me document it”
“Speed is what caused problems! Because I don’t know how to structure code and get ai to structure it the same it’s obviously going rogue and doing random things I cannot control so it’s wrong and causing a mess!!!”
“I haven’t been able to use it properly so don’t know how to rein it in to do specific tasks so it produces alot of stuff that takes me ages to read! I could have written it faster!!!”
I would love to see what these people are doing 1-2 years from now. If they eventually click or if they are unemployed complaining ai took their jobs.
Honestly, the one through line that I've seen with regards to the success of AI in programming is that it'll work very well for trivial, mass-produced bullshit and anyone who was already doing that for work will feel like it can do their job (and it probably can) almost entirely.
I don't really doubt that AI can put together your Nth Rails backend that does nothing of note pretty solidly, but I know it can't even write a basic, functioning tokenizer + parser in a very simple, imperative language (Odin) for a Clojure-like language. It couldn't even (when given the source for a tokenizer) write the parser that uses the tokenizer either.
These are very basic things that I would expect juniors with some basic guidance to accomplish, but even when using Cursor + Claude Sonnet 3.5 (this was 2-3 months ago, I had seen recommendations about exactly the combinations of tools I was attempting to use, so I don't really buy the argument that somehow it was the choice of tools that was wrong) it fell apart and even started adding functions it already added before. At some point I seeded it with properly written parser functions to give it examples of what it needs to accomplish, but it kept basically failing completely when having access to literally all the code it needed.
I can't even imagine how badly it'd fail to handle the actual complicated parts of my work where you have to think across 3 different context boundaries (simulation -> platform/graphics API -> shader) in order to do things.
3 replies →
Why wouldn't AI eventually take jobs of people who "know how to use it" as well? If AI makes engineers more productive, then you need less of them.
I utilize AI as a part of my workflows, but I'm pretty sure I'll be replaced anyway in 5-10 years. I think software development is a career dead-end now, except if you're doing things much closer to hardware than average dev.