Like Latin, but Compiles

I can still recite parts of the J++ 1.0 spec from memory, the way you can still sing a hymn you stopped believing in years ago. The words come back intact, in order, with their old weight — and they no longer point at anything that needs them.

It has been a long time since I worked on programming languages at Microsoft. Languages with semicolons. The kind that cared where your braces went, that punished you for a misplaced type and rewarded you for precision. C++. Java. Elegance earned through constraint, which for a certain kind of mind is the most satisfying elegance there is. For most of my career those languages felt like the living medium of progress: you typed, the machine answered, and the details — how you managed memory, how you handled concurrency, how you dodged a null without sounding smug about it — were the whole craft.

Latin was a living medium once, too. It ran an empire, argued its philosophy, wrote its poetry, settled its law. Then slowly it stopped being the language anyone reached for to do a new thing, and became the language you studied to understand the old ones — preserved, precise, beautiful, and spoken by no one in particular. It did not die in a moment. It receded, one domain at a time, until what remained of it was ceremony.

I have started to think the languages I loved are receding the same way, and faster than Latin ever did.

The break is not the usual one. It is not cleaner syntax or another version bump or a faster compiler; it is that software is starting not to begin with code at all. A person sketches an intent, and the model fills in the rest. You describe what you want and negotiate with what comes back, and the writing of the thing feels less like solving a puzzle than like telling a story to something that finishes your sentences. The architecture is implied rather than stated. The precision that used to be the entire job becomes optional, because the system supplies its own, somewhere underneath, in a form you are not really meant to read.

What unsettles me is not that this is worse. It is how familiar the shape of it is. For most of my life I explained things to a compiler as if it were the world's most literal coworker, and if my code compiled on the first try I was either lucky or lying. Now the compiler feels like a formality. The abstraction has climbed a level: you no longer explain, you describe; you no longer debug, you negotiate. The bug stops being a mistake in your logic and becomes a misalignment between what you meant and what the model understood — which is a stranger and more human kind of failure, and not one a semicolon can fix.

And the languages themselves? The ones we argued over, built careers on, used to settle who was serious and who was not — what becomes of them?

They go to Latin. They stay technically alive, still runnable, still taught, still sitting under everything as a kind of liturgical substrate nobody has to speak aloud anymore. I watch models reach for Python not because it suits the problem but because the training data was fond of it. JavaScript turns up like a guest who missed every signal to leave. Performance enters the conversation only when something has already broken. The languages have not been killed; they have been demoted to scripture — quoted, depended upon, rarely composed in fresh by a human hand.

So the next great language may not come from a committee, or from a person at all. It may simply surface — a dialect tuned by usage we cannot quite observe, optimized for a fluency that runs between machines rather than between us and them. And we will meet it the way tourists meet a living language they never learned: khaki shorts, black socks, a phrasebook, a great deal of pointing, and the hope of being roughly understood.

That is not the end of programming. Latin's recession was not the end of thought; it was a move from one center of gravity to another, from speaking the language to consulting it. The center is moving now from syntax to intent, from mastery of the incantation to a working relationship with the thing that casts it. I have made my peace with the move more days than not. I think in side effects now where I used to think in for-loops, in vibes where I used to think in recursion, and most of the time it feels less like decline than like a different and looser kind of fluency.

But I notice I keep the old spec in my head anyway, the way some people keep a dead language on their tongue: not because anyone is asking for it, but because it was beautiful, and because forgetting it would feel like agreeing to something I have not quite agreed to.

The languages are still here. We are simply no longer the ones who write them.

We are their accent.