I feel like the main missing point of every "coding will go away" articles (which this mostly, but not fully, is) misses that applications of any reasonable complexity are not fully defined anywhere but their code. That drives everything about modern software.
We've always had the ability to tie the code extremely directly to user experiences. The first problem is that it creates massive code duplication. The second (related) problem is that it creates an enormous, unsquashable number of bugs. There's no internal consistency.
Modern apps are COMPLEX. The abstractions and internal, non-user structure is the only reason they're maintainable at all. I'm working an a 6-month-old, 4-person codebase, and LLM-driven refactors, with me in the drivers seat, miss stuff all the time. If I forget that feature exists in this tiny codebase, how do organizations of any size function? Abstraction, interfaces, etc. -- software design.
The future is probably closer to "LLMs help clean up codebases" than "LLMs own the codebase," because the 2nd statement is effectively equal to "I will rewrite my code in English." English is a _bad_ language for describing complex systems. We could do better than Python, sure, but it's already _far_ better than English for the kind of cross-cutting behavior-and-dependency description software requires. It's valuable to have tools that translate intent into compact, high-quality code, but you still end up working with code as the fundamental artifact.
I feel like the main missing point of every "coding will go away" articles (which this mostly, but not fully, is) misses that applications of any reasonable complexity are not fully defined anywhere but their code. That drives everything about modern software.
We've always had the ability to tie the code extremely directly to user experiences. The first problem is that it creates massive code duplication. The second (related) problem is that it creates an enormous, unsquashable number of bugs. There's no internal consistency.
Modern apps are COMPLEX. The abstractions and internal, non-user structure is the only reason they're maintainable at all. I'm working an a 6-month-old, 4-person codebase, and LLM-driven refactors, with me in the drivers seat, miss stuff all the time. If I forget that feature exists in this tiny codebase, how do organizations of any size function? Abstraction, interfaces, etc. -- software design.
The future is probably closer to "LLMs help clean up codebases" than "LLMs own the codebase," because the 2nd statement is effectively equal to "I will rewrite my code in English." English is a _bad_ language for describing complex systems. We could do better than Python, sure, but it's already _far_ better than English for the kind of cross-cutting behavior-and-dependency description software requires. It's valuable to have tools that translate intent into compact, high-quality code, but you still end up working with code as the fundamental artifact.