A confession · September 2026 · 7 min read
English is the best programming language
I quit engineering college because I did not like it. I studied English literature instead, then journalism, and somehow ended up writing code for a living. Eighteen years later the machine writes the code and I talk to it in English. The degree I thought had nothing to do with software turned out to be the programming degree.
تُنشر المقالات باللغة الإنجليزية.
TL;DR
I quit engineering college, studied English literature and journalism, and ended up writing code anyway. In 2008 my classmate Kari told me the internet would build itself and I thought he was a fool. In 2026 I dictate ideas to an agent in English and it builds them. A programming language was always a translation layer between human thought and the machine. The model is now that layer, and English sits on top. Dijkstra called natural language programming foolish because English is ambiguous. The precision moved into the loop, and the ambiguity became the most useful part. Tell a model to be inspired by Tennyson and it builds something no specification could. The judgment still belongs to the human.
I never studied to be a software engineer. I never set out to be a programmer, or to work in software, or in whatever we call it now, the IT services industry. The funny story is that I did join an engineering college, and then I quit, because I did not like it. So I went and did a bachelor's in English literature instead. After that, a master's in journalism. And it was only after journalism that I somehow found my way into programming, into writing code and building websites and applications, and I have been doing some version of that ever since. Nobody planned this. Least of all me.
2008
I remember one particular day at my first job. I was working with a classmate from English literature, Karthik. We called him Kari. He was the lead singer in a band, a very dreamy sort of chap with a crazy imagination, and he saw me writing code. Hey man, he said, why are you wasting your time writing code? Don't you know that in the future we won't have to write code? The internet will just build itself. You'll just move things around with your hands, arrange them, and things will just come up.
The year was 2008. I thought he was a complete fool. I went back to my code, probably a little pleased with myself.
The year was 2008 and I thought he was a complete fool. The year now is 2026. Who's the fool now?
Because somewhere along the way I realised that English is the best programming language there is, at least when the thing you are programming is an AI model. The models are so clever that they catch the nuance of plain English and convert it into code. Kari got one detail wrong. It is not the hands, it is the voice. I dictate most of my work now, this essay included. But he got everything else right, and he got it right eighteen years early, sitting next to a man who was busy laughing at him.
What a programming language actually is
Think about what a programming language does. A programming language is pretty much a mechanism for taking the fundamental workings of the machine and abstracting them into a mode, a medium, that we humans can understand, which then gets translated back down into something the machine understands. Registers and memory addresses at the bottom. Words like if and while and return on top, words a person can read. So by default a programming language is a construct. It is logical thought, converted into execution. Every language we ever invented, from assembly to C to Python, was one more step up that ladder, away from the machine and towards us.
Fast forward to now. We have AI models, and these models are much better at writing code than most of us, and much better at the logical execution part. They do lack judgment, I agree, and I will come back to that. But they are better at writing code, and at this point that goes without saying. So the last step up the ladder has been taken. The translation layer is no longer a language we have to learn. The translation layer is the model. And the language sitting on top of it is the one we already speak.
So now all I need to do is dictate my idea to my agent, and it goes off and builds it. Sometimes ten minutes, sometimes twenty, sometimes an hour. It just goes ahead and builds everything. Then I look at the code, I try out the application, I look at the output and see whether I like it. If I don't like it, I give it more instructions. In English. Isn't that amazing? We spent seventy years inventing languages that sat halfway between us and the machine, languages we could understand that could then be translated for the machine, and we have migrated from all of that to the plain language people use to talk to each other over lunch.
The man who called it foolish
Not everyone would have found this amazing. In the late seventies Edsger Dijkstra, one of the great minds of computing, wrote a short note called On the foolishness of natural language programming. His argument was that formal languages were not a burden we should hope to escape. They were the whole point. Natural language is ambiguous. It lets us say things that sound sensible and are not. He put it better than I can.
When all is said and told, the "naturalness" with which we use our native tongues boils down to the ease with which we can use them for making statements the nonsense of which is not obvious.
He was right about English. He was a sharp man and he was right. What he could not have seen is where the precision would go. It did not disappear. It moved into the loop. I say something vague, the model builds something concrete, I look at the concrete thing and say something less vague. Ambiguity does not survive contact with a running application, because I can see it, click it, and tell it where it went wrong. In 2023 Andrej Karpathy put the other side of the argument in one line. The hottest new programming language is English. Kari said it fifteen years before that, across a desk, and nobody retweeted him.
And here is the part Dijkstra would have liked least. The ambiguity he was afraid of turns out to be the most interesting thing about it.
Tennyson in the build
This is something I sometimes do as an experiment. I tell the model to be deeply inspired by Tennyson's Ulysses. The old king back home on his rock who cannot sit still, who wants
To follow knowledge like a sinking star, beyond the utmost bound of human thought.
Now implement this sort of thinking, I tell it. In your application, or in your workflow, or in your UI design. Don't copy it, be inspired by it. And it is amazing to watch, because what I am doing is handing it literature. From the literature it has to explore nuance. What does it mean to follow knowledge like a sinking star, what does it mean to strive and not to yield. And then it has to translate that nuance into logical execution. Into layouts and flows and the order in which things happen on a screen.
More often than not, I have noticed, it does things differently. Slightly differently from what it would have done if I had just been instructional. Ask for a shorter onboarding and you get a shorter onboarding. Ask for a sinking star and you get something you would not have thought to ask for. I could not have written that as a specification. I am not sure anyone could. That nuance is exactly what Dijkstra wanted to keep out of the machine, and it is exactly what I am trying to let in.
Full circle
So I find my life going full circle. I started my adult journey reading lots of books, lots of literature, trying to understand how human thought and human imagination could be translated and poured into words. And then the other half of it. Reading those words and reconstructing the picture, the story, the plot, the characters, in my own mind, using my own mental model. And through all that reading, slowly expanding my horizons of how the world works. I was not interested in software engineering. I was not interested in building mechanical, logic based applications. I walked out of an engineering college to get away from exactly that.
And now here I am. I speak in English and the machine executes it. It builds its logical interfaces, its applications, its flows. I pour an idea into words and the model reconstructs it with its own mental model. The same two moves I spent my youth practising, only now the reader on the other end is a machine, and what it builds in its head, it builds for real. The literature degree turned out to be the programming degree. It just took eighteen years to compile.
The judgment is still mine. The model can build in twenty minutes what took me a month in 2008, but it cannot tell whether I like it. It cannot tell whether the thing is true to the idea, whether it is any good. That part stays with the person who wrote the words, which, if you think about it, is where it always was with books too. Somebody still has to decide what is worth saying.
As for Kari, I owe him an apology. He was not a fool. He was early, that is all. Kari, if you are reading this, you were right, and I was the fool. And Tennyson, as usual, had the last line before any of us.
To strive, to seek, to find, and not to yield.
Alfred, Lord Tennyson, Ulysses
Prashant Ipe · CTO, KRDS