This year marks the 30th anniversary of the World Wide Web, so there's been a lot of pixels spilled on "the initial promises of the web"—one of which was the idea that you could select "view source" on any page and easily teach yourself what went into making it display like that. Here's the very first webpage, reproduced by the tinker-friendly programming website Glitch in honor of the anniversary, to point out that you can switch to the source view and see that certain parts are marked up with <title> and <body> and <p> (which you might be able to guess stands for "paragraph"). Looks pretty straightforward—but you're reading this on an English website, from the perspective of an English speaker.

Now, imagine that this was the first webpage you'd ever seen, that you were excited to peer under the hood and figure out how this worked. But instead of the labels being familiar words, you were faced with this version I created, which is entirely identical to the original except that the source code is based on Russian rather than English. I don't speak Russian, and assuming you don't either, does <заголовок> and <заглавие> and <тело> and <п> still feel like something you want to tinker with?

In theory, you can make a programming language out of any symbols. The computer doesn't care. The computer is already running an invisible program (a compiler) to translate your IF or <body> into the 1s and 0s that it functions in, and it would function just as effectively if we used a potato emoji 🥔 to stand for IF and the obscure 15th century Cyrillic symbol multiocular O ꙮ to stand for <body>. The fact that programming languages often resemble English words like body or if is a convenient accommodation for our puny human meatbrains, which are much better at remembering commands that look like words we already know.

But only some of us already know the words of these commands: those of us who speak English. The "initial promise of the web" was only ever a promise to its English-speaking users, whether native English-speaking or with access to the kind of elite education that produces fluent second-language English speakers in non-English-dominant areas.

It’s true that software programs and social media platforms are now often available in some 30 to 100 languages—but what about the tools that make us creators, not just consumers, of computational tools? I'm not even asking whether we should make programming languages in small, underserved languages (although that would be cool). Even huge languages that have extensive literary traditions and are used as regional trade languages, like Mandarin, Spanish, Hindi, and Arabic, still aren't widespread as languages of code.

I've found four programming languages that are widely available in multilingual versions. Not 400. Four (4).

Two of these four languages are specially designed to teach children how to code: Scratch and Blockly. Scratch has even done a study showing that children who learn to code in a programming language based on their native language learn faster than those who are stuck learning in another language. What happens when these children grow up? Adults, who are not exactly famous for how much they enjoy learning languages, have two other well-localized programming languages to choose from: Excel formulas and Wiki markup.

Yes, you can command your spreadsheets with formulas based on whatever language your spreadsheet program's interface is in. Both Excel and Google Sheets will let you write, for example, =IF(condition,value_if_true,value_if_false), but also the Spanish equivalent, =SI(prueba_lógica,valor_si_es_verdadero,valor_si_es_falso), and the same in dozens of other languages. It's probably not the first thing you think of when you think of coding, but a spreadsheet can technically be made into a Turing machine, and it does show that there's a business case for localized versions.

Similarly, you can edit Wikipedia and other wikis using implementations of Wiki markup based on many different languages. The basic features of Wiki markup are language-agnostic (such as putting square brackets [[around a link]]), but more advanced features do use words, and those words are in the local language. For example, if you make an infobox about a person, it has parameters like "name = " and "birth_place = " on the English Wikipedia, which are "име = " and "роден-място = " on the Bulgarian Wikipedia.