Post

My biggest takeaway from “LLMs are useful for some aspects of writing software, and lots of people like it” is still that the existing tools we made for writing software are bad. 🧵👇

The last 20 years were spent on ever more complex layer cakes of frameworks, humongous IDEs and more new and “improved” programming languages that I can count—yet many programmers prefer a chatbot over them.

2 reposts72 likes

makes me nuts because it is like 'Of COURSE we use Kubenetes that's ENTERPRISE' then we can't get a build out the door in less than a week of fucking around

Frameworks have been a great distraction from core problems. People have bad experiences with complex projects (that are more about reasoning about a complex project), and decide the tools are to blame... Blam! Another framework! (Or if you're really unlucky, another language - hello Scala and Rust)

I think rust is a bad example for that particular point because its use is to expose and formalise complexity that already exists, rather than create it where it otherwise wouldn't. Writing correct unmanaged code is *hard*. Scala definitely tries to elide complexity though

How did the tools get so bad? It’s a mixture of ego-driven hubris, gate-keeping and tech-wanking. I think both proprietary platforms and open source have been harmful to quality; both contributing to cancerous cruft, overwhelming complexity and toxic environments.

The sheer amount of knowledge a developer has to have to implement even a trivial application today is mind-boggling when compared to to say the 1990s. And most of this knowledge isn’t about deep technical topics or about software design; it’s wrestling with ever-changing deep fried layer cakes.

It's almost a bad dream that we used to have to manually declare and initialise our dependencies, and then wire them manually together in XML. But we just moved the complexity elsewhere.

I feel increasingly like an old crank but I've been saying for decades that if you can't read and write the code in a text editor then it's too complex. I'll admit to a sliver of hyperbole, but I think it stands up practically too when taking into account abstractions that only leak in useful ways.

And there are CRUD frameworks in many major languages but I'm not 100% convinced they're that much easier than using connection strings and SQL. Sure, for user management, no one should build that from scratch, but other things? 🤔

For me the tools had a sweet spot some years ago. The languages and frameworks I use haven't evolved that much, but got a bit more convenient. But in the same time the tools got worse, slowing me down, get indeterministic UI, so I really have to concentrate and be careful. Weird.

Spot on. A whole lot of the cumbersome attempts to elevate programming over "typing text and hoping that it'll work" tried, but they tried to do so by domain switching (like intentional programming and its visual equivalents). LLMs elevate within the textual domain.

When they work, they correctly express the intent of a highly compressed statement as code edits. Then again, that is of course also how and where they fail ;)