Thoughtstream | Seminars

Programming for the XXI-imus century

The great flaw of most existing programming (and natural) languages is that word order matters. This makes it unnecessarily difficult to program (or talk) when drunk.

You end up writing:

        push casino's_money, my_cash;

instead of:

        push my_cash, casino's_money;

Generally speaking, older natural languages rely less on word order. For example, in Latin the sentences Puer dedit cani escam. and Escam dedit puer cani. both mean “The boy gave the dog the food.” In fact, the more usual word order would be a kind of Reverse Polish notation, with the verb coming last: Puer cani escam dedit.

This flexibility is possible because Latin uses inflection to denote lexical roles. That single fact allowed the Romans to build a vast empire despite their near-permanent state of intoxication.

There is no reason why programming languages couldn‘t also make use of inflection rather than position to denote lexical roles, thereby allowing hackers to program in their natural – inebriated – state. From that bar-room inspiration, it was only a small, slightly wobbly step to the Lingua::Romana::Perligata module: a Latin syntactic binding for Perl.

No prior knowledge of the ancient Roman language will be assumed, but by the end of the talk (or at least by the end of the after-party) the following program will make perfect sense:

        use Lingua::Romana::Perligata;
        adnota Illud Cribrum Eratothenis
        maximum tum val inquementum tum biguttam tum stadium egresso scribe.
        vestibulo perlegementum da meo maximo .
        maximum tum novumversum egresso scribe.
        da II tum maximum conscribementa meis listis.
        dum damentum nexto listis decapitamentum fac sic
            lista sic hoc tum nextum recidementum cis vannementa da listis.
            next tum biguttam tum stadium tum nextum tum novumversum scribe egresso.