@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 ๐คฃ
"planet-boiling roulette wheel" is the name of my upcoming experimental jazzcore EP
@Photo55 @StaceyCornelius @jonathanhogg Livecode is sort of descended from a Hypercard clone (https://livecode.com). And there are a number of runtime engines for old-school Hypercard decks (https://archive.org/details/hypercardstacks?&sort=-downloads). Thereโs also Decker, which is a spiritual inheritor (https://beyondloom.com/decker/).
Dang I miss Hypercard.
@fozztexx @jonathanhogg there are quite a few, Lego even have a visual programming language for their smart bricks (I think Python is officially supported, unlike not quite C for Mindstorms).
There's also a visual language for a smart RC/drone controller built by that one guy :) iforce2d is the guy.
But they're generally hard to to anything nontrivial with and very hard to debug. Like Excel/Calc... so easy to have subtle errors even in simple programs that it's considered inevitable.
@jonathanhogg this is my central response to the "AI makes software development accessible" argument.
Once upon a time anyone could program their personal computer using a book that came with it. We taught it to all the kids in my tiny town's elementary school. My shopkeep neighbor and our local mechanic wrote their own custom software with no CS background.
BASIC, Hypercard, personal computers, printed manuals > LLM's.
@requiem @jonathanhogg don't forget COBOL and SQL, both invented so businesspeople could dispense with overpriced programmers and just talk to the machine directly.
Turns out that programming people is much easier than programming machines, or at least that yelling at the compiler about an error message is much less useful than yelling at subordinates.
@jonathanhogg
Help us get the federated wiki there.
It is more than a successor in spirit to HyperCard.
You would be surprised to learn about what #FedWiki does.
@jonathanhogg Scratch is excellent. My kid's been using it. I used hypercard at his age and it was a lot fun.
Had it not been because our teacher had acquired two macs into the class, and we could spend time before and after school, I don't think it would have been as fun. It's not just the tools, but also the environment and culture.
@jonathanhogg HyperCard was amazing, and I like to think that if it had still been getting the appropriate support it needed, it would have transitioned really well to the World Wide Web, with stacks being transported to an in-browser runtime plugin that could make calls to data sources on servers.
Even on various modern SaaS platforms, we are still struggling to empower internal staff to build useful stuff that HyperCard could have done so well. The newest generation of that is LLM-powered agentic tools for departments, but even those are turning out to be difficult to build quality products from.
@jonathanhogg well, things started going downhill bc of Steve Jobs:
Atkinson: [At an event at the school our kids went to], he said "you know, Hypercard was really ahead of his time, wasn't it?"
And that was the first time he'd ever said anything good about hypercard. I think before that, the problem is: Hypercard is the reason I didn't go to NeXT, and it had Scully's stink all over it. [...]
https://youtu.be/INdByDjhClU?si=Ft-fFBWBGC5tmC74&t=954
That doesn't explain why the world stayed at the bottom of the hill tho.
