Saw Damian Conway last night at U of T. After he blew my mind in fifteen minutes at DemoCampToronto7, I had no idea what to expect from two hours. I was not disappointed.
The talk was Fun With Dead Languages, and it was as advertised. I don't really want to give too much away, but he did some pretty sick things, like calculate pi using PostScript, and redefine C's -- and > operators to mean nothing so he could layout his State Machine in ASCII art with lots of --------- > arrows.
The highlight of the presentation was the last half hour or so where he explained his Lingua::Romana::Perligata Perl module, for programming in Latin. The key aspect of this is that in Latin the word order doesn't matter so much as the endings - so (simplifying) you know it's a subject because it ends in US or it's an object because it ends in UM. His module parses by word ending rather than position
The details are in the link, but here's the code he wrote:
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.
cis
This code actually runs and figures out the primes beneath the entered value, using the Sieve of Erasthothenes technique. It also inputs (vestibulo) and outputs (egresso scribe) in Roman Numerals.
Cheeky.
I actually took some Latin back in school, although I've forgotten almost all of it - but it put me in the company of about four other people in the room who snickered just a few seconds before everyone else whenever he brought up another translated quote.
Other fun lines - I got too wrapped up to note the funny stuff later in the presentation, so I only have good lines from the first part about LISP.
- From the introducer: Exits are at the front and the back of the hall. If someone should mention Ruby on Rails, air masks will fall from the ceiling. Be sure to put your own on before helping the Marketing person next to you.
- As Larry Wall says, LISP is 'porridge with toenail clippings'.
- Back when I started LISP, you'd write it out and give it to John McCarthy, who would run it in his head and write down the result for you.
- My advice if you want to write LISP in a way to freak out your professors: lay out the code in Kernighan & RIchie style!
- I have been working on the Klingon language module, but I don't want to release it until it gets the approved by the Klingon Language Institute - you don't want to annoy the Klingon Language Institute!
He's on a tour of North America sponsored by ValueClick, who are looking for good Perl programmers. If he ends up near you, he's well worth seeing.