←back to thread

466 points 0x63_Problems | 8 comments | | HN request time: 2.211s | source | bottom
Show context
perrygeo ◴[] No.42138092[source]
> Companies with relatively young, high-quality codebases benefit the most from generative AI tools, while companies with gnarly, legacy codebases will struggle to adopt them. In other words, the penalty for having a ‘high-debt’ codebase is now larger than ever.

This mirrors my experience using LLMs on personal projects. They can provide good advice only to the extent that your project stays within the bounds of well-known patterns. As soon as your codebase gets a little bit "weird" (ie trying to do anything novel and interesting), the model chokes, starts hallucinating, and makes your job considerably harder.

Put another way, LLMs make the easy stuff easier, but royally screws up the hard stuff. The gap does appear to be widening, not shrinking. They work best where we need them the least.

replies(24): >>42138267 #>>42138350 #>>42138403 #>>42138537 #>>42138558 #>>42138582 #>>42138674 #>>42138683 #>>42138690 #>>42138884 #>>42139109 #>>42139189 #>>42140096 #>>42140476 #>>42140626 #>>42140809 #>>42140878 #>>42141658 #>>42141716 #>>42142239 #>>42142373 #>>42143688 #>>42143791 #>>42151146 #
1. slt2021 ◴[] No.42138683[source]
maybe its a signal that you software should be restructured into modules that fit well-established patterns.

its like you are building website thats not using MVC and complain that LLM advice is garbage...

replies(1): >>42139787 #
2. marcosdumay ◴[] No.42139787[source]
No, you shouldn't restructure your software into highly-repetitive noise so that a dumb computer can guess what comes next.
replies(1): >>42141132 #
3. slt2021 ◴[] No.42141132[source]
I am proponent of Clean and Simple architecture that follows standard patterns.

because they are easier to maintain, there should be no clever tricks or arch.

all software arch should be boring and simple, with as few tricks as possible, unless it is absolutely warranted

replies(2): >>42142588 #>>42144194 #
4. skydhash ◴[] No.42142588{3}[source]
Simplicity is hard. And difficulty is what almost everyone using LLMs is trying to avoid. More code breed complexity.

I read somewhere that 1/6 of the time should be allocated to refactoring (every 6th cycle). I wonder how that should be done with LLMs.

replies(1): >>42143084 #
5. valenterry ◴[] No.42143084{4}[source]
Exactly that. LLMs generate a lot of simple and dumb code fast. Then you need to refactor it and you can't because LLMs are still very bad at that. They can only refactor locally with a very limited scope, not globally.

Good luck to anyone having to maintain legacy LLM-generated codebases in the future, I won't.

replies(1): >>42146835 #
6. lmm ◴[] No.42144194{3}[source]
A pattern is a structured way of working around a language deficiency. Good code does not need patterns or architecture, it expresses the essence of the actual business problem and no more. Such software is also significantly easier to maintain if you measure maintainability against how much functionality the software implements rather than how many lines of code it is. Unfortunately the latter is very common, and there is probably a bright future in using LLMs to edit masses of LLM-copy-pasted code as a poor man's substitute for doing it right.
7. dartos ◴[] No.42146835{5}[source]
I’ve noticed LLMs quickly turn to pulling in dependencies and making complicated code
replies(1): >>42151443 #
8. skydhash ◴[] No.42151443{6}[source]
I'm sure they do great for scripts and other stuff. But the few times I tried, they always go for the most complicated solutions. I prefer my scripts to grow organically. Why automate something if I don't even know how it's done in the first place? (Unless someone else is maintaining the solution)