upvote
My anecdotes for using LLMs to modernize legacy (20-year-old systems):

- 40x speed improvement

- Painless env setup

- 20 Second deploy

- 90+% test coverage

- Ability to quickly refactor

- Documentation

(The original system that I wrote with one other programmer 20 years ago took 1.5+ years to write. Modern rewrite: 2 days)

reply
Presumably the 1.5 years for the first version involved work other than coding that the LLM rewrite didn’t entail?
reply
Business logic is usually the most substantial part of legacy systems in my experience, so I imagine so.

Not to be too negative but a lot of modern software complexity is a prison of our own making, that we had time to build because our programs are actually pretty boring CRUD apps with little complex business logic.

reply
I can only assume there's a ton of domain knowledge accrued over those years and beyond baked into the legacy code, that an LLM can just scoop up in a minute.
reply
Not the poster you replied to but I’m sure it did. But still manual rewrite under the same constraints would be much less feasible.
reply
Yep, coders do more than just code.
reply
The anecdote the GP is providing there rings true for me too - although I'm not sure if I am going offer better detail.

I'm a proponent of architectural styles like MVC, SOLID, hexagonal architecture, etc, and in pre-LLM workflows, "human laziness" often led to technical debt: a developer might lazily leak domain logic into a controller or skip writing an interface just to save time.

The code I get the LLM to emit is a lot more compliant with those BUT there is a caveat that the LLMs do have a habit of "forgetting" the specific concerns of the given file/package/etc, and I frequently have to remind it.

The "metric" improvement isn't that the LLM is a better architect than a senior dev; it's that it reduces the cost of doing things the right way. The delta between "quick and dirty" and "cleanly architected" has shrunk to near zero, so the "clean" version becomes the path of least resistance.

I'm seeing less "temporary" kludges because the LLM almost blindly follows my requests

reply
I don't think I'd like your code. But apparently there's enough implied YAGNI in my CLAUDE.md to prevent the unnecessary interfaces and layers of separation that you apparently like. So I guess there is a flavor for everyone.
reply