The Languages We Leave Behind

I spent over a decade working on programming languages at Microsoft. Languages with semicolons. The kind that cared where your braces went. C++. Java. Even now, I can still recite parts of the J++ spec from memory, like an old song that never really leaves your head.

And for a long time, those languages felt like the medium of progress. You typed code. The machine responded. The details really mattered—how you managed memory, how you handled concurrency, how cleverly you could avoid a null pointer without sounding smug about it.

But something’s shifting. It’s not just the tools getting smarter. It’s the tools learning to think. And to be honest, I’m not sure how much longer we’ll be writing code the way we used to.

I don’t mean version bumps or new syntaxes. I mean a future where writing software looks more like telling stories than solving puzzles. Where humans sketch intent, and AI fills in the rest.

We’re already halfway there. Prompting a model to build an API. Asking it to debug something you barely understand. “vibe coding,” as its been called recently—because sometimes the vibe is the architecture, and the model just rolls with it.

And that’s... weird. Not bad, just weird. Because for most of my career, the whole point was precision. You earned elegance through constraint. You explained things to the compiler like it was the world’s pickiest coworker. And if your code compiled on the first try, you either got lucky or lied.

Now? The compiler is optional. The abstraction deeper. You’re not so much writing code as negotiating it. Describing behavior. Exploring tradeoffs. Sometimes just asking, “What would happen if…?”

It’s exciting. It’s disorienting. It’s also kind of freeing, once you stop trying to control it.

But here’s a thought I can’t shake: What happens to the languages themselves? The ones we built whole ecosystems around? Will they fade into the background like Latin—technically alive, but mostly ceremonial?

Already, I’ve seen models write in Python not because it’s the best fit, but because it’s what the training data knows. JavaScript shows up like a houseguest who won’t leave. And nobody asks about performance unless something catches fire.

So maybe the next big language won’t come from a committee. Maybe it won’t come from a person at all. It’ll just… emerge. A dialect formed between AIs, tuned for efficiency, shaped by usage patterns we can’t quite see. And we’ll interact with it the way tourists navigate a foreign country: khaki shorts and black socks, lots of pointing, and hoping to be understood.

I don’t think that’s a loss. Not exactly. But it does shift the center of gravity. From syntax to intent. From mastery to collaboration. From knowing the right incantation to trusting the ghost in the shell.

And maybe that’s what’s really changing: the idea that code is a thing we write, rather than a space we inhabit.

I used to think in for-loops and recursion. These days, I think in outcomes. In side effects. In vibes.

The languages aren’t gone. But they might not be ours anymore.