My 2c on the AI/GenAI/LLM bubble

A premise

I am writing this to clarify my ideas more than anything else. This blog has such a small following that I doubt anyone will be influenced, but if you have opinions, please share them.

I will refer to AI/LLMs interchangeably in this post. I am aware the translate function in your phone, or the spam filter in your email inbox is also Artificial Intelligence. I know it’s also what we used to call Machine Learning. It’s also what we used to call statistics. It’s also, obviously, not AGI.

It does not matter. I went through the whole era of telling people that no, the people who get into your computer to steal your money should be called crackers, not hackers, but I am older, and I have realized it’s not worth it to fight all the battles. People will call AI-powered a toothbrush with a led, and that’s fine.

Mixed feelings

I am a mastodon user and my circle over there is dominated by people who, for one reason or the other, hate AI. Their arguments are, in large part, reasonable. I will not debate the power, water, and general resources usage arguments, because I don’t feel strongly about those.

The fairness argument is the one I will consider: the big AI labs have built their fortune on a trove of illegally obtained data, and are making money by offering to replace people whose data they stole. While we can argue about the details (some data was legal, some labs are trying to give back something, there are blurry lines on what constitutes fair use) it seems objectively shitty.

I understand the feeling, more for artists than for programmers, and I would welcome a sort of regulation that compensated them somehow, but I cannot imagine how that would work. Maybe let’s fund UBI taxing AI vendors? That sounds like a good idea! But to me, so does taxing megacorps in general to fund welfare.

What I do think, it’s that it’s not useful to yell at people using AI to do inferior knock-off “art” and expect it to disappear.

You can vote with your eyeballs and avoid content that is clearly AI slop, but I don’t think this will be effective long term.

AFAIR boycotting products has never been effective long term: Nestlé still markets powder milk for babies in poor countries, after 50 years of boycotts.

This does not mean boycotts are useless, but IMO a boycott is only effective if it leads to regulation, and that is what people should strive for.

Grief and all those thing

I think what I’ve seen in myself and others is a response that very closely resembles the five stages of grief pattern. When confronted with the idea that AI can somehow replace their skills, people have clearly gone through these things: denial that computers could ever do their work, anger at the peddlers of slop, then getting to the idea that yeah, sure, they can do some things but not everything I can (bargaining). I expect depression will follow and then perhaps acceptance.

Most reactions I’ve seen were anger. That’s where most people complaining about AI these days are, even if they’re not aware of it (I wasn’t, either).

Why wouldn’t they be angry? If you’re someone like me whose identity is strictly tied to what you do and you get told what you do is no longer unique or useful, of course you’re going to get angry. If you think insecure about your ability to keep a salary, you will be upset. Add to this that people like Sam Altman or Elon Musk are genuinely horrible people, why wouldn’t you be fuming?

But I think being angry is not useful to anyone. Luddites were right in their anger, but it did not stop the rise of automation.

But riffraff, haven’t you heard this quote?

We live in capitalism. Its power seems inescapable. So did the divine right of kings. Any human power can be resisted and changed by human beings. Resistance and change often begin in art, and very often in our art, the art of words. – Ursula K. Le Guin’s

I have, and I think this is a misrepresentation of the issue. Systems need to be changed, but the righteous anger needs to be directed properly.

I do not think it’s possible to stop the increasing usage of LLMs, because even if we burned all the data centers we’re at a stage where it’s becoming more and more simple to just get an open weight model and run it on your machine.

And in my memory, we were never able to stop something that everyone can do at home. People still distill illegal alcohol at home in countries where it’s forbidden. You can still download pirate movies. You can rip CDs on your machine.

Containers and dockworkers

I think one needs to look at what’s happening in the optics of an industrial revolution of some sort. There will be winners and losers. Our duty to humankind is to make sure there are not too many losers, and that they don’t lose too much. But we cannot deny the technological changes.

A few years back I read “The Box”, a wonderful book about the rise of shipping containers. Did you know that in the past there were whole towns of dockworkers? Some cities were basically wiped off the map economically once shipping became automated, because they failed to adapt, others rose to prominence. The people didn’t really go anywhere tho, they had to transition to different jobs, because what else could they do?

I am not sure the same will happen with workers whose job can be partially or totally replaced by LLMs.

Perhaps, as some say, this is more a case of raising productivity while not really losing workers. In computers, we saw this happen with the move from punch cards to hand coded assembly to ever higher level programming languages. At each rate, the productivity went up (allegedly), the level of abstraction rose, but people just adapted, and companies chose to do more, not to do the same with less.

I subscribe to this idea. Perhaps artists will get to work 1/10th of the time on commissions, and 9/10 they will just ask Photoshop to copy their style.

The most positive perspective is, in my opinion, that in a couple years we will all be able to run inference on our machines with open weight models. This will still be unfair to people who get copied more but I think it is an acceptable outcome: the commons have built a data set of images, words, codes, and it will get back to them. We need to fight for this outcome, and avoid more data getting siloed.

Where I stand

Nolan Lawson wrote a good piece about how programmers are mourning our craft. I got exposed through it through another post, by Les Orchard, in which he notices that programmers seem to mourn the craft coming from two different sides. I was literally going to write the same thing in this post when a colleague shared it, but he put it in a nicer way.

My idea, in brief, is that, some programmers were into coding for the typing, some of it where in it for the output.

I was, and still am, more interested in the typing than in the outcome, most of the timing. I enjoy working on things which are not world-shattering, provided I can code it nicely. That’s why I love the Advent of Code. Or why I used to read about weird programming languages (I miss Lambda The Ultimate!). Heck, once I printed and read a whole manual on SGML and I am not exactly sure why.

But some other people see programming as a tool to achieve something, or enable other humans to do it.

For those who mostly saw programming as a mean to an end, going one more level up in abstraction is good, you get more stuff done!

For me, it removes a part of the programming experience which I enjoyed, and I am left with more of the part I enjoy less.

I am afraid we will all have to deal with this. Continuing with the bad analogies, it looks like this might be a case of photography vs painting. Photography didn’t kill painting, but it did supplant it as the mean of getting someone’s image. Painting had to be reimagined as something other than realistic painting. But realistic painting still exists!

I’m not so sure there will be people doing hand crafted code as a hobby, and I’m pretty sure the chances of people paying premium for free range humanely developed code are close to zero. But I’ve been wrong before.

Personally, I am at the bargaining stage of grief. At this point in time, in the Year of Our Lord two thousand and twenty six, it appears machines still can’t do everything I do as a programmer. They for sure can’t do what a good designer can, so visual artists will be fine for a while longer.

A good agent can actually write decent code and do whole features at this point. A good human still needs to review it, and direct it and integrate it, but it makes no point to put your head in the sand and think it’s useless now, or that it will never work.

Be prepared

What I find interesting, is that different people have completely different experiences with coding via LLMs. Some seem to think they are barely more productive, some sound like they’re producing whole businesses every weekend, some feel they can’t get anything done faster.

I think, as it’s often been said, that typing code was never the hard part of the craft. Most of my job is talking to people, and I expect it will continue to be so. That’s not the case for everyone tho, Depending on how you worked before, your feeling of LLM usefulness will be different.

And if you do use some agent to code, you have to at least invest some time. For a couple years I’ve repeatedly tasked every LLM with the same coding task (write a simple weekly meal planner) and I think we’re at the point where they work well enough. I can ask to implement the thingy, and they produce a working prototype.

More importantly, they are able to do changes incrementally. Until a few months ago, coding agents would run wild and undo what they did so you would never “converge” to what you wanted. Now they seem to work okay.

So, in my opinion, whatever your craft is, you should invest some time now and then to see if agents can help. I don’t think (or can’t accept, yet) that AI will wipe out knowledge workers, but it’s not wise to stick your fingers in your ears and go LALALALALALA.

Parting words

Do not be too anxious about this. Do not be to angry about this. Things that worked before will continue to work: be ready to learn, take care of yourself, have people close to you and be close to people. Try to change what you can, and put an effort into understanding what that is. Save money for the bad times, stay healthy, be good.

We’ll get through this.

Tinker Tailor Engineer Spy

When I was in University I had a few good teachers, and I remember fondly Professor Lorenzo Farina.

Once, he§ came to class and ranted a bit about some job advertisement he had read: the job was for a software engineer, and mentioned they were looking for someone with a smanettone mindset.

Smanettone is an Italian term which in context meant something like “hacker” (in the Jargon File sense) or “tinkerer“. Back then, it was a bit of a shibboleth for people who were into cyber culture, *nix, FLOSS, security and so on. Those of us in the audience who were into that felt immediately positive about the company who had used this.§

Our teacher didn’t know that, so he interpreted it in a negative sense: who the heck are these people looking for? Someone who’ll turn knobs and flip switches without any sort of understanding of what’s going on? That is the opposite of what the engineer mindset should be!

The Tinkerer Mindset

Since the teacher welcomed feedback, we approached him to change his mind at the end of the lesson: that’s not what this is about! Being a a smanettone is about the joy of playing with something, push it beyond what it is designed for, and actually trying to understand it better. It’s about having fun while you build something because of your knowledge, not for lack of it!

There is a definition in the Treccani dictionary now, which roughly translates to

In computer jargon, someone who’s passionate and has fun experimenting, creating and changing the contents of their computer or of the software installed on it.

Vocabolario on line Treccani

It’s an ok definition! It’s not the one I’d write, but it’s close to what I think of as the tinkerer mindset.

(In praise of my teacher, he updated his world view, and I seem to remember he started using the term himself later on.)

The Engineer Mindset

So, I liked to think of myself as a smanettone. But I also like to think of myself as an engineer. I don’t think the two things are at odds.

I think the engineer mindset is about having a method. It does not actually matter what method exactly, but you should act with a plan.

Which is another factor: your actions should be intentional, you do X because you expect Y, not because you have no idea. When you get (or don’t get) a result, you try to understand why.

And you should be able to work logically. Logic is not all one needs in life or on a job, but it is a defining part of an engineering approach to problem solving and solution design.

The engineering mindset and the tinkerer mindset may overlap, but are separated and independent and not mutually exclusive.

I hate ChatGPT

ChatGPT and its ilk are incredible things. If someone had told me a few years back that we’d be able to have quasi-conversations with a bot I’d not believe it§.

But I hate the feeling of working with it, and I despise the concept of prompt engineering.

Prompt engineering is, to put it bluntly, not engineering. It is, at best, prompt tinkering, as it shares exploratory and fiddling aspects.

But it’s actually worse than that, because people do not have actual insights on what is happening, nor do they gain them by fiddling.

You hear stuff like “you should talk directly to the LLM” or “you should talk kindly and say please” or “you should ask to explain itself, and sometimes it works better“. In the OpenAI forums you’ll see people telling each other “oh yeah that works terribly with GPT3.5 try GPT4” but also the opposite.

There is actual engineering going on on top of LLMs. Stuff like RAG or HyDE or ReAct is cool and smart, and you can certainly build things of value on top of these things.

But a large part of it is prompt fiddling. You can’t even know how different LLMs (or versions of the same LLM) will react until you try them out, and when you do, you only know if something worked for whatever input you used, but you have no knowledge of how it will generalize. Sometimes a single different word may cause drastically different outcomes, for no discernible reasons.

You don’t even know if the same LLM will continue to work the same over time! They may be getting dumber while you use them!

Prompt fiddling can be fun, and may work at times, but it’s also deeply frustrating and inefficient.

Shamans and Medics

I once listened to a mythology class, which explained that in many mythologies people or animals are born out of a deity’s armpit.§

The explanation given was that, well, primitive people did not really understand procreation. An armpit is angular, hairy and humid. So, not that much different from female genitalia, right? If one thing gives birth, why not the other?

People did not understand things, they told each other vague explanations and did things that seemed to make sense to them.

There’s a beautiful story of an Arab doctor called to help a Frankish knight. The knight had an abscess to a leg, and the Arab doctor, armed with Greek medicinal theory, wanted to administer him some balm.

But a Frankish doctor came and suggested to chop his leg, “better to live with one leg than die with both!”. Of course the knight died.

Those Frankish idiots! They should have stuck with real science and a proper doctor: it would have been enough to rebalance his humors, and the knight would have been just fine. Or not.

The Frankish medics were not idiots, and they are more or less the reason surgery became the real thing in Europe. And the Arab doctors were not idiots either, they had centuries old theories, and sometimes their remedies worked, too.

But they didn’t actually have a proper understanding, and no way of gaining it, they were limited to vague explanations and things that sometimes worked, and sometimes killed people.

And I have the feeling this is where we’re at right now with LLM usage.

I can’t wait for the modern era to arrive.