Inkling

Languages have passports

22 August 2026🪐

Twenty-five years ago, just out of college, my first programming language was PHP. I loved it for a reason I couldn't have named then: it never judged me. Whatever you ran, PHP would run it and show you something. It almost never said you are wrong. Come as you are, try everything, ship something tonight. For a fresh graduate finding his feet, that welcome mattered more than any language feature.

Then I met Python, and the welcome changed. Get the indentation wrong — the famous tab battles of those early days — and it simply refuses to run. Strict, mathematical, rule-bound. There is one right way to do a thing, and Python expects you to find it. I would have sworn it was German.

And Ruby felt like neither. Writing Ruby felt like craft — something closer to woodworking than engineering. When I learned its origin, it fit perfectly: Japanese, built by Yukihiro Matsumoto — Matz — who says outright that Ruby is designed to make programmers happy. The craftsman feeling isn't an accident; it is the design goal.

That was the moment it landed for me: languages have cultural identity. They carry passports. Though when I actually checked the passports, the story got better, not worse. Ruby I had right. Python I had the wrong country but the right instinct — Guido van Rossum is Dutch, and Python was born in Amsterdam; the Zen of Python even jokes that the one obvious way to do it "may not be obvious at first unless you're Dutch." And PHP, which I'd have bet was American, was created by Rasmus Lerdorf — a Dane who grew up in Canada. But PHP's real nationality is the early web itself: inclusive, forgiving, permissive to a fault. A passport isn't always where you were born. Sometimes it's where you grew up.

Once you see it, you can't unsee it. Lua is Brazilian. Erlang is Swedish — built inside Ericsson, reliable as a dial tone. JavaScript was assembled in ten days at Netscape, and every day of that shows: pure American ship it first, fix it later.

The reason I'm writing this now is that I'm standing in the same moment again, twenty-five years later — except this time it's not languages, it's AI models. ChatGPT feels like PHP to me: inclusive, eager, always gives you something, rarely tells you you're wrong. Claude feels more European: considered, principled, quite willing to tell me when I am wrong — it corrected two of the passport claims in this very piece. I could be mistaken about all of this, and I'm not picking sides. But the temperaments are real, and they are different.

What I'm sitting with is the pattern underneath: tools inherit the temperament of the people and the values that shaped them. It was true of the languages I learned as a young programmer, it seems true of the models I work with now, and it is certainly true of people. The fresh graduate who felt welcomed by PHP and judged by Python was noticing something that took me twenty-five years to say out loud: nothing we build is culturally neutral — and that is not a flaw, it's a signature.

spoken by Sree, shaped into pages with ❤️