@kirtai @jonathanhogg A large number of those lines of code are probably boilerplate indicative of abysmal library quality.
If a language's entire ecosystem is built on boilerplate and it's seen as normal, that is not okay.
Skynet didn't destroy the world by getting too smart-- it actually just started glitching and chasing its own tail in gibbering circles and everything broke.
Heap of 10K lines and they probably have NO idea what is even going on in there.
@jonathanhogg thank you for this thread!
In the last years while the AI hype unfolded, I was lucky to get a closer view of Scratch, Snap and MIT App Inventor.
The ease of use, the speed of development and the abstraction of complex concepts into easy to use building blocks of the latter three were amazing.
Ever since AI came up my brain couldn't stop thinking that if so much code gets generated then we've been working at the wrong abstraction level all the time.
@jonathanhogg
On one hand, I'm inclined to agree about the barrier to entry issue - boilerplate sucks, and having more people understand programming would be great.
But on the other hand, it feels like the amount of software in existence is already unmanagable, and the average quality is relatively low.
You say to move a layer up to avoid writing 10k lines, but the current way to do that results in huge dependency trees with 10s of thousands of lines of someone else's code.
1/
@jonathanhogg
All these dependencies have updates which introduce regressions and API breakage. And they also have vulnerabilities.
IME, these things can very quickly become unmanagable - you spend more time updating dependencies than writing your own code - unless you're very picky about your dependencies.
So is more people writing more software what the society needs?
Indeed. These people urgently need to absorb the lesson of DRY: Don't Repeat Yourself.
@jonathanhogg Consider this scenario: spend a very long time planning and designing, and then have a very fast code output, then fix any issues.
Also what about projects which can't be made in 30k lines? Doesn't automatically mean that the project is wrong just because it is big.
@warmsignull Unfortunately it seems that Fred Brooks' work is not common knowledge. He concludes that the number of bugs in a program is not linear with the length of a program but a *power function*.
So yes - brevity is a goal. And there have been studies that show that verbose languages produce more bugs. So it is in our best interest as systems engineers to research how to improve programming.
e.g. what is expressed in 30k of Java is not the same as 30k in Lisp.
(cc: @jonathanhogg)
@jonathanhogg I've spent the last decade writing about 50k lines of C++ and it's barely comprehensible to me. Despite regular bouts of significant refactoring and deleting, as old 'new and essential' functions turn out to never be used or the one user goes away.
I did point a downloadable LLM assistant at it but got nothing usable. I was half hoping for a "sure, I'll rewrite that into Rust for you" result 🤣