Programming

Software Was Never About Code

Ask an AI to build you a website, and you'll get vanilla HTML, CSS, and JavaScript. Ask for a web app, and you'll get React, probably with Next.js. Ask for a cross-platform app, and you'll get React Native. Ask for a desktop app, and you'll get Electron. The pattern holds for nearly everything that involves code: the model reaches for the most common, most widely used tool. On its own, that isn't a bad thing. Those defaults are popular for a reason. At scale, though, it's a disaster. Every tool

Ask an AI to build you a website, and you'll get vanilla HTML, CSS, and JavaScript. Ask for a web app, and you'll get React, probably with Next.js. Ask for a cross-platform app, and you'll get React Native. Ask for a desktop app, and you'll get Electron. The pattern holds for nearly everything that involves code: the model reaches for the most common, most widely used tool.

On its own, that isn't a bad thing. Those defaults are popular for a reason. At scale, though, it's a disaster.

Every tool existed for a reason

Software has so many tools because each one was built to solve something. Vue and Svelte exist because people kept running into the same problems with React. There's a long line of cross-platform frameworks because building for every platform at once has been a headache for years. Each of them started with someone who hit a limit and decided to build something better.

A model doesn't hit limits that way. It reaches for what it has seen most, and what it has seen most is whatever was already popular. New tools never get enough use to become the default, so the defaults keep getting more entrenched.

Follow that forward. If models keep getting smarter and costs stay roughly where they are, AI ends up writing most software. Every web app gets built with the same stack, and so does every static site and every smart contract. The huge variety of languages, frameworks and tools we had in the past stops growing. When AI can build anything faster and cheaper than any person, what's the point of building a new one?

Code is cheap now

Take that one step further. If everyone uses the same models to generate the same stack, code stops being an advantage. Whatever you built, your competitor can rebuild in a fraction of the time it took you.

AI hasn't made code good; that's a whole other essay. But it has made code cheap, and cheap things don't set you apart.

That's uncomfortable if you think of software as code. But software was never really about code.

What software is actually about

Software is distribution, marketing, getting in front of users, maintaining the product long after launch, and a lot more that has nothing to do with writing code. AI has made the code cheap, but it hasn't changed any of the rest.

People use a product because they expect it to work and they expect its makers to still be maintaining it next year. That trust is as much a part of the product as the code is.

Look at how many Notion copycats there are, and how many Granola copycats. Will any of them become a billion-dollar company? No. Most of the people behind them don't give a damn about the software itself. They care about the money, and getting the money takes far more than writing code. You can clone the features in a weekend. You can't clone the users, the trust, or the years of maintenance.

Disposable software

Something I find fascinating is the rise of disposable software: apps you spin up with AI in an afternoon and then forget ever existed, like a TikTok video. I'm not going to pretend I haven't done it myself.

The trend is going to grow. Most of that software is harmless, because it's built for one person and one use, and then it's gone. But it changes what people value. When anyone can make an app in an afternoon, an app by itself means nothing. What means something is software that someone stands behind.

The correction

All of this is hitting the job market. A lot of engineers can't find work that pays enough for an upper-middle-class life. That's assuming they can find a job at all and get through the interview.

I think a real crash is coming in tech, and it isn't about the AI bubble. The market is going to stop paying people who only produce code, because the machine produces it more cheaply. For years, producing code was enough to build a career on. It isn't anymore.

Smaller, and more elite

I don't think we'll ever see as many software jobs as we did in 2020. But I do think the market will recover. Once the hype settles, things will stabilize, and companies will still need people.

They'll need fewer people, and better ones. Programming is going to become more elitist, and only the best of the best will make meaningful money long-term. "Best" won't mean whoever solves LeetCode fastest. It will mean the people who understand the tradeoffs the machine makes, and the people who bring what the machine can't: product sense, the ability to reach users, and the commitment to keep something running for years.

When every app is built on the same stack by the same models, the code is the one thing that's identical everywhere. What sets a product apart is the people behind it.