It's also very frustrating to constantly have my opposition to AI be taken as an opposition to abstraction, or to automation, and a desire to do every little thing by hand. But it's the opposite. For a whole bunch of reasons, AI anti-abstracts. It adversarially creates oceans of duplication to process. It creates a situation where the AI user gets to set the terms of some ecosystem with synthetic productivity but then everyone else needs an AI to figure out what's going on in that new ecosystem.
@MaddieM4 @glyph yes, a thing I've been saying a lot is that someone resorting to LLMs to solve a problem seems pretty well correlated with the problem being one that shouldn't have existed in the first place.
Last year I talked to someone who said a large and tedious part of his job used to be transcribing tabular data out of nicely typeset PDF manuals into a machine-readable representation that can be fed to software. And then he started getting an LLM to do that for him.
But the PDFs were generated by another part of the same company! Steam came out of my ears. Why the hell is the company making life difficult for _themselves_ in that way in the first place? The people creating the data should provide it in a machine-readable format _already_, so that nobody has to convert it back into one!
In fact they ought to have been doing that all along. The red flag of "this job was so tedious I outsourced it to an LLM" _shouldn't_ have been necessary. The fact that you were making life pointlessly difficult for other humans should have been enough. But I guess a lot of this kind of nonsense exists in the world just because organisational boundaries hide the costs to _this_ department from _that_ department who caused them.
(Also, with the right tools – I quite like the Python 'pdfminer' library – you can automate that process _without_ an LLM, and have, you know, testing and repeatability and far lower computational costs. If I were receiving a PDF of that kind from some organisation I had no hope of influencing, that's what I'd do.)
@MaddieM4 @glyph I have a former colleague who keeps pulling out the "it saves time on worthless rote code," and he somehow still hasn't realized that my response is always going to be "that's a framework problem, not a use-a-ton-of-electricity-to-do-a-bad-job problem."
They all think that it's a genius foot in the door (probably because Claude told them so) and not something actively debated for seventy years.
I've been talking to people for a long time about the boilerplate problem. Though I call it a BS problem.
The GenAI tools are really good at generating BS. They don't really generate data because they don't actually exist. Though they can generate BS about data, to various extents of utility.
For a long time we have called this BS generation "work" and labeled it a "very important thing". Especially at big companies. As these companies now wade through workslop they're all having these complicated reckonings about which pieces of the job were actually "work" and which ones were "performative paperwork".
I think the AI apologist side is still trapped in measuring "performative paperwork" as part of their success. They're not wrong in the sense that businesses thought they valued that stuff. But they're wrong in measuring a solution that was never the problem.
I think your pain & friction measurement is what lots of people are really going through now...
@MaddieM4 And even if you decide to accept that "this boilerplate must be written"... why give it to a nondeterministic service to write? Why not take a few minutes to write some code that can generate the boilerplate in a way that is provable and repeatable?
You can not actually trust an LLM to transform X into Y reliably, so you HAVE to check it every time. And people are provably bad at that.
But, we know why. Because the people pushing for AI aren't responsible for what it generates.
@NfNitLoop So true. And you can actually point to what we were doing before this as a comparison. In the web frontend world, it used to be a normal part of coping with framework churn that frameworks would basically offer starter/skeleton project layouts you could use as a starting point. While these weren't *good* usually, often a bit out-of-date or out-of-touch or overweight, you could actually have conversations about what they *should* be, and make them better. They probably could have been better if catching up to the ecosystem wasn't such an artificially expensive forever-slog.
LLMs are actually much worse at this because the training data is old, or from mixed framework eras, and never really a stationary target that humans with subject matter expertise can examine and debate and improve. It's all unaccountable fever dreams of things a scraper network saw once, like stories told by a faded senior in a nursing home.
Abstraction is leverage. Automation is the amplification of power. Abstraction is democratization. Automation repeats a duplicative process so you can stop thinking about it and focus on something higher level. Abstraction elides so architecture can expand.
AI is anti-leverage. Where an abstraction will elide duplication with semantic compression, AI steamrolls the duplication by copying and pasting faster than a human can.
@glyph LLMs also break the standard 'interchangable parts' of programming... they often end up writing whole new bespoke subroutines, systems, libraries, rather than reuse existing ones...
Like - imagine you are automating building a car, but, every component of every car is being procedurally generated and manuactured for that speciffic car. It's the dumbest possible way to automate *building* things.
@miss_rodent @glyph that depends a lot on how clear the prompts given. If a naïve user doesn't give some initial prompting and ground rules about what language versions, environments and existing libraries are available for use, many coding LLMs will reinvent the wheel with brand new errors rather than using tried And tested library code honed over decades.
Don't outsource thinking to an infinite monkey machine, you still have to task it with clearly written and considered prompts.
@zymurgic @miss_rodent @glyph it can't be that stupid, you must be prompting it wrong
Linus is saying the quiet part out loud: AI-native projects are environments where the key ingredient is _capital_. Abstraction can be performed by a quiet appreciation. True automation can be disruptive.
AI-based architectures (again, assuming that the AI works reliably, which is a highly contingent proposition) translate all that stuff into capital flows. A "machine speed" project requires _money_ to participate in, regardless of their complexity.
@glyph Linus along with his top deputies are probably being given free access to any AI models they want.
@adx when a technology empowers, entrenches, and elevates the powerful at the expense of everyone else, if you're "the powerful" it starts to look like a great idea and you're not sure why everyone wouldn't be on board
Right now it looks like AI can do "disruption" because you can apparently do things that require a team, as an individual, by taking advantage of highly subsidized token rates, or (at best) taking advantage of highly subsidized training regimes and stolen training data. But those rates will go up and while you'll still be able to nominally command those resources as an individual, doing so will still require the capital flow required to hire a team.
AI does not disrupt. AI entrenches. AI turns money into more money; AI turns investment into dependency. We are living in a funhouse mirror of that right now where the combination of overly-plausible demos and first-one's-free incentives are swamping the actual balance-sheet math. But the economics require that this stabilize, that the capital flows reverse direction. The wave has come in and we are just starting to feel the undertow.
@glyph I've been saying this for years ever since "it just speeds up the boilerplate" first ruffled my feathers and I had to sit and examine why.
If boilerplate is somehow prohibitively uncomfortable to write, that's a pain signal here to tell you something. You're missing an abstraction! Just like touching a hot stove should signal you to not do the thing. Choosing to just do the boilerplate faster with stolen training data, even if it's a task the bot can easily do correctly, is like shooting up morphine instead of moving your hand off the stove. And nearly all LLM apologia is like this!
If nothing else, I have a far more fundamental respect for friction* and pain signals than I did five years ago.