I can still recite parts of the J++ 1.0 spec from memory. Like an old song.
It’s been years since I worked on developing programming languages at Microsoft—languages with semicolons. The kind that cared where your braces went. C++. Java. Elegance earned through constraint.
For a long time, those languages felt like the medium of progress. You typed code. The machine responded. The details mattered—how you managed memory, handled concurrency, dodged nulls without sounding smug.
But something’s shifted. It’s not just smarter tools. It’s tools that think.
Not in the incremental way we’re used to. This isn’t about cleaner syntax or version bumps. It’s a deeper break—where software no longer begins with code at all. Humans sketch intent. AI fills in the rest. Writing software starts to feel less like solving puzzles and more like telling stories.
I watched someone prompt a model to build a backend service. They didn’t debug—it was more like narrating a hunch. The model adjusted. They revised. It worked, mostly. The architecture was implied. The vibe held.
That’s the part that catches me. Not the functionality. The shift in posture.
For most of my career, precision was the job. You explained things to the compiler like it was the world’s pickiest coworker. If your code compiled on the first try, you were either lucky or lying.
Now the compiler feels optional. The abstraction’s deeper. You don’t explain—you describe. You don’t debug—you negotiate. You’re exploring behavior, asking tradeoff questions, testing boundaries. “What would happen if…?”
It’s disorienting, but also freeing. Once you stop trying to control it.
Still, I keep wondering: what happens to the languages themselves?
The ones we built around. That defined careers. That settled arguments. Do they recede like Latin—technically alive, mostly ceremonial?
I’ve seen models write in Python not because it’s right for the job, but because it’s what the training data prefers. JavaScript shows up like a guest who missed the signal to leave. Performance only enters the chat when something breaks.
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… show up. A dialect shaped by usage patterns we can’t quite see. Tuned for efficiency. Spoken fluently between AIs.
And we’ll interact with it like tourists. Khaki shorts. Black socks. Lots of pointing. Hoping to be understood.
That’s not the end of programming. But it moves the center of gravity—from syntax to intent. From mastery to collaboration. From knowing the right incantation to learning how to speak with the system.
These days, I don’t debug. I negotiate. The bug isn’t a mistake—it’s a misalignment.
I used to think in for-loops and recursion. Now I think in side effects. In vibes.
The languages are still here. But we’re no longer their authors.
We’re their accent.