4 ms·
We've basically already seen this with computer aided design. It's essentially the root of Moore's law. I'm not entirely convinced AI-aided software developmen
by marginalia_nu 4y ago
We've basically already seen this with computer aided design. It's essentially the root of Moore's law.
I'm not entirely convinced AI-aided software development (via copilot or whatever) is actually going to speed up development. It makes writing code faster, but pressing the keys or implementing simple functions was never the slow or difficult part.
The problem for the last several decades has been managing complexity, and that's something AI-aided programming doesn't help with. If anything my hunch is that it makes the problem worse. The increased speed of producing code means designs become even more shortsighted, the spaghetti even more byzantine and entangled.
- primroot 4y agoI upvoted when I had read up to where you wrote "doesn't help with." I felt I was reading my own thoughts when I read the last two sentences. I think it is not just software design that will become shortsighted we may even see less interest in improving programming languages. I've always hoped for people to come up with some mathematical insights (beyond functional programming) that will describe code organizing structures in a more sensible way, so that experience no longer appears as the main argument for software patterns being tools to manage complexity. Now a programming language is just another language to be modeled, and its texts generated and proofread by a fallible human.
- giovannibonetti 4y ago> I think it is not just software design that will become shortsighted we may even see less interest in improving programming languages. I believe in the contrary. AI code generators and modern languages that enforce type and memory safety are a great match, since the compiler ensures the mess doesn't grow too much.
- marginalia_nu 4y agoThis is an entirely class of problems than what I'm describing.
- SanderNL 4y agoKeypressing is a hurdle for me. I know that comes with experience. Very little if any software is truly novel and it all looks and feels very similar. Everything I see is patterns and boilerplate. I do not see the insurmountable complexity anymore. Scientists are the ones coming up with novelty. We hook up databases to UIs and manage infrastructure. Sure there is complexity but it is of a very superficial kind. Like a ball of Christmas lights.
- marginalia_nu 4y agoIf there is a universal pattern that lets you effortlessly design large non-trivial software systems across all domains, please do publish it. It will do more for productivity than Copilot or ChatGPT ever will.
- SanderNL 4y agoWell, if you ask how to design “large” systems then the answer is already “don’t”. And besides that’s not a technical issue, our issues are organizational and political. Also, yes there is an universal pattern and that is called a competent and experienced software engineer. We lack those. We have a lot of kids with fancy degrees.
- marginalia_nu 4y agoThere's large systems that do useful things though that don't decompose into smaller systems. Shouldn't we have those? Compilers. VMs. Operating systems. Search engines. LLMs...?
- SanderNL 4y agoThe core tech of LLMs is famously simple. All the rest decomposes just fine. I know we suck at it and there often nontechnical forces that steer us into other directions, but I don’t see big fundamental issues AI can’t already help with. I know that there is complexity, but the essential part of it is not our job. That is my point. We are accidental complexity managers. I know we like to think working on compilers and browsers is magic, but compared to other fields it’s nothing special. And by the way, you and I know that exactly 6.78% of devs are employed in those domains and of those 1.12% work on core parts. I am sorry if I come off annoying and stupid because I am both. You of course raise an interesting point it’s just that I don’t feel like going into wide(r) tangents.