upvote
Because even if the rewrite worked, and worked perfectly, you've (a) lost a day, and (b) there's no guarantee that you won't have to do that all over again in a few days' time, because you're still not thinking about the architecture.

But if the codebase is large enough, and if you don't have tests for everything, you'll likely lose stuff along the way. So you'll then spend at least another day tidying up the rewrite, just getting it back to where you were two days ago.

Does that sound like fun? Wouldn't it be easier to just plan it correctly the first time?

reply
Almost all scalability and performance optimization is architectural in nature. AI writing the code doesn't eliminate this concern.

Some apps don't care about scalability and performance but many do. Ignoring architecture all but guarantees inefficient, wasteful software.

reply
Why try to make things that are good? Why care about anything? Why not just turn our minds over to the machines, and let them rock us to sleep like babies?
reply
Possibly because the goal is the end product that serves a purpose and has value, not the process. If you can make your product, make the customer happy, and make your money to enjoy your life and secure your families future… why care who or what or how (as long as it’s ethical obviously).
reply
> Possibly because the goal is the end product that serves a purpose and has value, not the process.

This is not true for everybody or for every project. Sometimes it’s about the code and not about what it does. Sometimes it’s about learning. Sometimes it’s about the fun of creating. “Only the end product matters” is a narrow view of the world of software development.

reply
[dead]
reply
Every choice has a cost. The question comes as to when you pay it. Your idea of an end products behavior, and the end products behavior when it interacts with reality may differ significantly.

For example is unknowingly writing a security flaw ethical, when you could have used a set of processes to reduce them before release that would have make the entire thing take longer and cost more. Seems like programmers need a lot more ethics classes as ethics are part of any large scale process.

reply
I agree with most of what you are saying, but I believe that this view on people's ethics is a little naive. Remember that we are talking about AI contexts here. Everything it infects has a questionale track record w.r.t. ethics on many levels.

Besides, ethics come from upbringing and social influences, not from attending a mandatory ethics class.

reply
An agent can rewrite a small codebase in half a day, I have millions of lines of code - it can't rewrite that in half a day.
reply
Abstractions. They make it easier for a human to understand. We need abstractions to fit systems into our working memory. Agents dont.
reply
Agents don’t have infinite working memory…

LLMs benefit from abstractions for the same reasons that humans do. More information in the same amount of text. Fewer working parts to juggle so fewer ways to make mistakes.

reply
How are you going to read the code if it's not structured in a way you understand?
reply
I think the argument is that there won't be a reason to read the code. If you want a change, just let the agent change it.

Similar to the output of a compiler. Nobody (with very few exceptions) reviews its machine code output. No reason to do that. If you want to change it, just recompile.

(I don't share this view, but I think a substantial and growing fraction of folks does.)

reply
Mhh I've tried one-shotting double buffered IO a few times and it just can't do it. Maybe it's a prompting issue, maybe LLM's have a hard time with thinking about parallel processes.

I'll create a simple "framework" of what I know works. After that's there the LLM is fantastic.

reply
Why would you care about architecture? Ability to implement the current feature, ability to implement future features, maintainability, and (at least sometimes) performance.

But why would you care when an AI can just rewrite it? Yes, but can it rewrite it to a good architecture? Or just to a different one?

Does a good architecture make code easier for an AI to maintain? I don't know, but I think it's at least not proven that it doesn't.

reply
It’s important for separation of concerns, which is important for maintenance and future iteration on features and bug fixes. If you don’t have separation of concerns, every change to anything is essentially a from scratch rewrite of the whole thing. That’s also incredibly inefficient in token usage.
reply