I wish more was being invested in AI autocomplete workflows. That was a nice middle-ground.
But yeah my hunch is "the old way" - although not sure we can even call it that - is likely still on par with an "agentic" workflow if you view it through a wider lens. You retain much better knowledge of the codebase. You improve your understanding over coding concepts (active recall is far stronger than passive recognition).
I've had a lot of enjoyment flipping the agentic workflow around: code manually and ask the agent for code review. Keeps my coding skills and knowledge of the codebase sharp, and catches bugs before I commit them!
It also writes lots of bugs which it'll catch some of, in an independent review chat.
This is bogus. If you think LLMs write less buggy software, you haven't worked with seriously capable engineers. And now, of course, everyone can become such an engineer if they put in the effort to learn.
But why not just use the AI? Because you can still use the AI once you're seriously good.
This is definitely not correct in my opinion. You’re essentially saying, instead of a person actually getting better at the craft, just give up and let someone else do it.
IME, not really. When you prompt it to review its own written code, it will end up finding out a bunch of stuff that should have been otherwise. And then you can add different "dimensions" in your prompt as well like performance, memory safety, idiomatic code, etc.
Man, same here, those early days of Cursor were mindblowing; but since then autocomplete has stagnated, and even the new Cursor version is veering agentic like everything else.
I hope if/when diffusion models get a little more traction down the line it'll put some new life into autocomplete(-adjacent) workflows. The virtually instantaneous responses of Inception's Mercury models [0] still feel a little like magic; all it's missing is the refinement and deep editor integration of Cursor.
On the subject of diffusion models, it's a shame there aren't any significant open-weight models out there, because it seems like such a perfect fit for local use.
I can see the logic behind "manual coding" but it feels like driving across country vs taking the airplane. Once I've taken the airplane once, its so hard to go back...
Can't understand this mentality. If I had the time I would much rather never set foot in an airport again. I would drive everywhere. And I would much rather write my own code than pilot an LLM too
The fact so many people think businesses need to do do do, faster faster faster, now now now, at all costs is a major reason everything sucks, everything is fucked up, everyone is exploited.
Exactly. When you're operating as a business you need to be executing and AI helps a lot in brainstorming, developing, testing etc.
I have ADHD and just by brainstorming with AI helps me initiate.
Of course, you need to be the ultimate gatekeeper or else there will be quality issues. But isn't that the same when we write manual code? AI is just another tool in your toolkit.
No, they are not. Even ignoring business where using AI would have consequences for you (medical is one example), there are plenty "normal" software companies that value quality over slop.
That's why I added "across the country". I guess its a bad analogy.
I agree with the premise of the article but I just don't think going back to manual coding is the solution.
Here's my new attempt using puzzle as an analogy which I wrote yesterday:
Starting last year, I noticed coding was getting less fun. It’s like buying a puzzle set and finding out there’s an auto-complete button. Press it and the puzzle solves itself. Faster than me, better than me, prettier than me. It’s like playing a game with cheats on.
I don’t even have to touch the pieces anymore. I just tell the auto-solver what I want. Tell it I want a bird, it gives me a bird. A pirate ship? Here’s a pirate ship. At first I never imagined it could do a rocket, but with its help, that went from fantasy to reality fast.
Sometimes it doesn’t quite match what I wanted, but usually just telling it what’s wrong fixes things. The whole process is so fast that, if nothing’s broken, I don’t even bother looking at how it actually solved it. That would just waste time.
But coding felt less fun with this new assist mode.
The fun of puzzle-solving is gone. That feeling of trekking through the hard parts and finally reaching the summit is gone. Now it’s like taking a cable car up.
Before, I had to think alone for a long time, try things, experiment, until I finally cracked the problem. Now with the assist mode, it’s like doing college homework where the teacher already has the answer key. I just ask and I get a standard answer.
Coding went from craft to management. “I” went from a craftsman with standards to a foreman watching workers do the job. It’s just not the same. And “foreman” sounds kind of weak.
This is like saying "EV charging is soooo slooooow" and thinking you need to stand next to the car holding the nozzle in the charging port like with a petrol car.
Of course you go do something else unless it's a literal 30 second operation.
LLM auto-complete is the most useful experience I've had with LLMs by quite a margin, and those were the early GitHub Copilot versions as well. In terms of models and cost it overperformed. It wasn't always good but it was more immediately useful than vibecoding and spec-driven development (or vibecoding-in-a-nice-dress).
I think most people "moved on" because they both thought the agent workflow is cooler and were told by other people that it works. The latter was false for quite some time, and is only correct now insofar that you can probably get something that does what you asked for, but executed exceedingly poorly no matter how much SpecLang you layer on top of the prompting problem.
In some codebases, autocomplete is the most accurate and efficient way to get things done, because "agentic" workflows only produce unmaintainable mess there.
I know that because there are several times where I completely removed generated code and instead coded by hand.
Why? I thought it was pretty good, just get the rest of your function a lot of times and no context switching to type to an agent or whatever. It just happens immediately and if it's wrong just keep typing till it isn't. You can still use an agent for more complex things.
I just wish I knew of a good Emacs AI auto complete solution.
But yeah my hunch is "the old way" - although not sure we can even call it that - is likely still on par with an "agentic" workflow if you view it through a wider lens. You retain much better knowledge of the codebase. You improve your understanding over coding concepts (active recall is far stronger than passive recognition).