AI makes programming differently difficult
121 points - today at 6:30 PM
SourceComments
In other words, the hard part moves from recall (“How do I write this?”) to judgment (“Does this actually make sense?”)
This is very true. But to evaluate if it makes sense, you first need experience writing the code. I am glad I learned software development over 15 years ago, and not today. AI is a super power, but without the experience to guide it, it can go horribly wrong really quickly.The future is using LLMs for what they are good for. What that is still being found out. I've had great experience with LLMs reviewing the code (matches with Primagean's ~50% accuracy at finding bugs, which is really good) and for explaining unfamiliar concepts to me.
I firmly believe that the code itself needs to be 100% organic, and if it's not and you're relying on LLMs to generate tons of code, you haven't built enough abstraction to make it unnecessary.
Now the sharpening of a coherent point, challenging one’s assumptions, and editorial decisions of what (not) to include are super important because they’re no longer a byproduct of the writing process.
The future of software development will belong to those who can think clearly at scale, maintain durable mental models amid rapid change, and integrate machine-generated output into human-directed intent.
Wasn't this always the case? Maybe I just take this for granted because I am dumb Army guy and this is the only lens through which we dumb Army people see the world.
Whenever the subject of AI comes up in connection to programming it feels like the conversation always misses the human element. When you look at this only in terms of human behavior I am not seeing anything new with AI.
Maybe, its because I write in JavaScript and maybe its different in other areas of programming. In JavaScript it has always been a race to the bottom. The product is never the goal. The goal is always hiring and regarding code as a commodity that is designed to fail elegantly and frequently. So, when I look at AI writing code for developers I can't help but ask: What's different? Isn't that why Angular and React became popular, because they abstract away writing code?
A farmer who ordered a farmhand quickly discovered he was an extraordinarily efficient worker.
The first day, he put him on sawing logs, and the farmhand sawed more logs than anybody else, ever. It was fantastic — but the wood-cutting work was all done in one day.
So, the next day, the farmer put him onto mending fences. There were all kinds of broken fences around the farm. And, again, the farmhand had all the work done in one day.
So the farmer thought, “What am I going to do with this guy?”
The next day, he took the farmhand to a basement and said, “Look, here all the potatoes that have come in from this harvest. I want you to sort them into three groups: those we sell, those we use for seeding, and those we throw away.”
He left the farmhand to it. And at the end of the day, the laborer came back and said, “Well, that’s enough, mister, I quit.”
“Oh,” the farmer replied, “You can’t quit. I’ve never had such an excellent worker. I’ll raise your salary — I’ll do anything to keep you around me.”
The farmhand said, “No. It’s all right mending fences and chopping wood, but this potato business is decision after decision after decision.”
You can't take a rapidly developing field and pretend progress is going to freeze at its current development level so you can decide how to handle it.
It's a coping mechanism to deal with rapid change by pretending change is going to stoo right here right now and you can get a handle on it.
How's about a test? Put all the smart AI researchers/developers onto an airplane that its software was entirely created by AI. Now tell that airplane to travel around the world with airborne refueling and land at an airport. When will this happen and how many of AI advocates will get on this autonomous airplane?
This is wrong, code is the concrete "truth" being executed, the rest (plans, prompts, agent instructions) are just temporary artifacts used to generate the code. What's left is the code alone.
LLMs don't have any semantics, they can't execute anything with 100% certainty. So far programming languages are the only langugues that can do that.
It's absolutely not true that it "just" moved the difficulty around. If that were true then I'd be just as well off continuing to use my decades of programming expertise just as I always have; but the reality is I can get more done, and get better work done (depending on level of vibing), than ever before.
Thing is, though, making programming easier doesn't mean programmers will work less hard. That's how competitive markets work. LLMs made programming easier. Capitalism prevents workers from capturing that value.
I didn't think it would work just 6 months ago, but reality is that at this point AI writes better code than me and I'm not the average developer, but someone who loved the craft and was good at it.
Lots of effort was required to get the repositories to a good level, best practices, documentation, etc, but reality is that once you do that and have strong rails most of your work is having it to write a plan focused on business logic, review it, have it derive an implementation plan, review it and then it's mostly on its own.
Codebases have never been healthier, cleaner, better documented, consisted and thoroughly tested as they are now. There was just no spare time and mental energy to bring them there before, now there is and experimenting to get there was cheap.
Needless to say I no longer enjoy the job anymore and thinking of changing domain. I loved tinkering about implementation details, etc, but the job nowadays is more of qa and architectural design than writing or reviewing code.
The way to think about coding agents is that a good one should in theory literally replace the developer entirely. No, a whole organisation of developers.
In theory a product owner should just be able to dictate how they want to product to function at a high level and the AI should take care of the rest in the same way a human programmer or team of programmers would have in the past. If there are conflicts in what's being requested, then the AI should be able to recognise that and ask for production direction.
As always with every generation of AI people seem to way over index on the now.
- "They're good for autocomplete, that's about it"
- "They're good for quickly mocking up small functions, but they make a lot of mistakes"
- "They're good for scaffolding some parts of the system if you're good at prompt engineering"
- "They're good at writing most of the code, but humans will always need to do the last 10%"
- "They can write all of the code, but humans will still need to architect the system"
You are here. Perhaps this is where progress stops. I wouldn't bet on that however.
AI is making programming an irrelevent field.