Write Software in Latin (2025) [video]

3 days ago (youtube.com)

This guy lost me right at the beginning. He says that we write software in English because the USA won World War II with the help of the Colossus computer to break codes. Then he shows a picture of ENIAC, and suggests it was also used in World War II codebreaking.

This is completely wrong - it was the British who used computers to break codes during that war. Colossus was built for that purpose by the British. ENIAC was built in the USA but did not become operational until after the war and was not used for codebreaking.

I quit watching after that. I don't trust anyone who garbles well-known history that badly to tell my why we should write software in Latin.

Instead, let this other guy tell you why you should write software in Latin -- and show you how! He's the real deal - he programs in C89 with Latin keywords, by using the C preprocessor:

https://github.com/farant/rhubarb/blob/main/docs/old/latina....

  • Absurd. There's about a million times more English text in the world than Latin text (so far). In 1000 years, English will be much better understood than Latin and it's not even close. Write software in English.

    • In 1000 years, people speaking what they will call English won't be able to understand the English we are writing today, any more than you can understand the English of 1026 -- it was a different language then, now called Anglo-Saxon.

      BUT the Latin of 3026 will be the same as the Latin of 2026, 1026, ... and 26.

  • > Don't use nomen as a variable name. Seriously. It's a macro for typedef

    For all the warnings so far about not using nomen as a variable, wonder why not just do "typus_definire", since both "type" and "define" are Latin-derived...

  • Such corrections become even more important in the age of LLMs where we're gonna see more fake stuff. I honestly thought this is some kind of a joke but it turned out be a talk.

Perl was there decades ago: https://metacpan.org/dist/Lingua-Romana-Perligata/view/lib/L...

  • The perl $, @, %, etc. being compared to declensions is amusing.

    I feel like you need to know something about perl and latin (both considered outdated) to get this joke.

    For those who don't: in perl, the same text identifier can have a different meaning depending on these prefixes, i.e. $foo is scalar, @foo is array, %foo is a hash (dictionary). Likewise latin (like most old indo European languages) has a bunch of suffixes to indicate what is happening with a noun or adjective: is it a subject, direct object, possessive, used as a tool or location, etc.

  • > If you have to ask "Why?", then the answer probably won't make any sense to you either.

    Saved to shortcuts

  From:  hermann@cpsc.ucalgary.ca (Michael Hermann)
  Subject:  Programmming awards
  Date:  10 Feb 89
  
  At Calgary, the computer science department has an award called
  the Williams Cup (as in old stained coffee cup), which is given
  yearly to the student who hands in the most imaginative
  rendition of a regular programming assignment.  Anyway, as the
  story goes, the cup was awarded to a student who'd done a desk
  calculator assignment.  Seems that the prof hadn't specified
  that you had to do it in decimal, so his/her program did math
  with _roman_numerals_.
  
  The clincher for the award must have been his/her programming
  style, since of course, the documentation was in _latin_.

— <https://www.cs.earlham.edu/~skylar/humor/Unix/computer.folkl...>

Sic itur ad astra! I spent some time and tokens generating these C99 applications and libraries all in classical Latin: https://github.com/jdb19937/apotheca. They all build with this C99 compiler + arm64 assembler + linker toolchain https://github.com/jdb19937/ccc (CCC = 300) which is included. But my favorite one of these repo is the 100+ test cases https://github.com/jdb19937/corpus that I used to iterate the compiler to bootstrappability. Nota: README.md ignorandum est. Anglice scriptum est ad barbaros ineruditos pecunia emungendos, lege LEGEME.md.

  • How did you compose the Latin? It seems... not very classical both in word selection and grammar. For example,

        /* Est c consonans (non vocalis, non spatium, non littera non-Latina)? */
    

    seems a word-by-word translation of English words into Latin words ignoring the structure and syntax of classical Latin. Perhaps it ought to be something more like:

        /* Estne c litera consonans (neque vocalis, neque spatium, neque litera linguae aliae)?
    

    edit: On reflection, notes on the return values of boolean functions probably ought to be some sort of utrum ...an construction.

    • One way I felt the prerogative to influence it was in choice of vocabulary, for example "files" are plicae, non fasciculi, brevity FTW. I have a (private) CLAUDIUS.md file where I accumulated such guidance. Frankly I can't really tell where it lies on the spectrum of classical to vulgar, my memories of reading Cicero and Pliny have faded quite a bit, but I understand your point about the barbaric word order (next expeditio I'll take this into account). But it was still a worthwhile campaign in terms of refreshing that knowledge. Salve!

      2 replies →

One thing he missed out on is using genders to represent variables of different types, having three `temp` variables with different names, comparators that take valueA, valueB et cetera.

I thought of doing this in a kind of Lisp as it's been said to be like latin by analogy (PG?)

Didn't get around to it though as it would be another layer to go through when coding as I thought you'd have to translate the latin to whatever programming language you're using in English

Maybe LLMs might make it easy to get such a thing going for AI assisted coding in latin going forward though

Seems inaccurate to claim that "America" broke the Nazi's Enigma code - most of that work was done at Bletchley Park by British codebreakers, was it not? Of course Britian is still an Anglophone country and certainly lots of pioneering computing work in general was done in English by either Americans or British people, so it doesn't affect his broader point.

  • It was actually first cracked by Marian Rejewski at the Polish Cipher Bureau and the details were handed over to Bletchley Park at the start of the war.