The Register® — Biting the hand that feeds IT

Feeds

Here lies /^v.+b$/i

Which programming language to use on one's headstone?

Email delivery: Hate phishing emails? You'll love DMARC

Stob

After I've gone

In a melancholy mood, this week. Went back home to have a look at Dad's bench. He was a Classics scholar, actually; went up to Cambridge and everything. And so above his name and dates on the brass plaque screwed into the wood, instead of "He loved this place" or something equally fatuous, it says:

ORE STABIT FORTIS ARARE PLACET ORE STAT

which is Latin, but if you stare at it (or Google it, you unimaginative so-and-so) also is not Latin.

This got me thinking - well, it was raining, and churchyards do induce a certain mood - about how I should wish to be remembered. Obviously not in English - that would spoil the family tradition. I desire to be commemorated in the native tongue of my craft. Problem is: which one?

Not bloody HTML, I can tell you. I don't want to buried with all the tag-cutters and CSS-tweakers in Websters’ Corner. And not in sodding XML either – I doubt that my estate will run to a sufficiently large gravestone. Besides, I am not a data point, I am a free person. Ok, was.

So which programming language is the most epitaph-oriented? I looked along the languages shelf of my bookcase for candidates.

There was life before Kernighan and Ritchie. I have a third edition of Pascal User Manual and Report by Kathleen Jensen and Niklaus Wirth from 1985, but its publishing history indicates it first appeared in 1974, somewhat predating the curly brackets boys.

Despite what they say, Pascal is a candidate for my favourite programming language. But no thanks to this book, which I don't think I have ever opened except to determine if some quirk of the language was introduced by Borland, or was always there. (Oh look, J&W do encourage you to use the with statement, with multiple variables on the go at once, for maximum confusion.)

Still, the wordiness and the lack of brackets on procedure calls do go quite well with the matter in hand:

repeat
  Fun
until not Verity;

Next comes the book that doth bestride the narrow world / Like a Colossus ie the first edition of The C Programming Language. The point about that notorious 'Hello, world\n' program was that the authors were sufficiently in touch with their readership as to recall the primitive sensation of wanting to get the computer to do something - in short, what it was like to be human. In this context, I say this is a definite plus point in favour of C.

(By contrast, the first program in J&W, on page 2 of - I am sorry to say - chapter 0, prints out an inflation devaluation table at three percentage levels over ten years, apparently recalling what it is like to be clever and rich and yet still receiving unsatisfactory advice from one's stockbroker – a less spiritual association.)

K&R transmitted the joy of programming to all their readers... and certain stylistic quirks, too. It is easy to spot the showy brevity of one who had over-imbibed the K&R spirit. There are many dark corners of many 1980s C apps that look like this:

/* Clutterbuck's algorithm for sorting a binary tree */
clbk(r, s, t)
int **r, *** s, ***t; /* a lie, but harmless */
{
   /*
      ...
    */
    for (++(**p) -= *(*q + h++)(); ***p != **p; (***p)++) {
        /* a lie, but harmless */
    }

Hum. I want visitors to my notional last resting place to be thoughtful; but I don't want them baffled. I don't wish to be remembered as an incomprehensible smartarse. (Reader's voice: snicker.)

K&R inspired many imitators, the best known of which is surely Bjarne Stroustrup's 1986 The C++ Programming Language. By your 'Hello, world' shall ye be judged, and, sorry to say it, I think the C++ implementation is a failure

cout << "Hello, world\n";

because the stream operator flows the wrong way. The metaphor is back to front for left-to-right reading text. Right-to-left flow is input, not output. (Yes, yes; thank you for explaining why it is as it is. But.) I don't really want to be remembered as someone who couldn't tell left from right. Besides, it is my sister, not me, who habitually introduces the phrase 'I meant the other left' into driving directions.

Java has The Java Programming Language, but I seem to have let my copy go and don't remember much about it. I think it had Doctor Who quotes in its chapter headings - very tasteful, but not good enough to justify this role. Once I had a big Perl O'Reilly book – dumped too, and I refuse to Google it – which I recall as being confusing. A faithful portrait of its subject, then. Heaven forefend: I refuse to be remembered as /^v.+b$/i.

I can't apply my crude test to Programming Erlang by Joe Armstrong as it doesn't have a 'Hello, world' example, possibly because its author had still not recovered from the trauma of filming the famous telephone scene in Erlang – the Movie. Armstrong's book is the lowest level of the bunch: before you know it he is parsing COFF Data and fiddling around inside TCP. It's designed for those who enjoy the tickly trickle of bits through their digits. I like to think of myself as above these things; besides, the famous crash-proof qualities of Erlang seem inappropriate to the circs.

The D Programming Language by Ruski C++ torturer Andrei Alexandrescu cracks lots of good jokes, and he is thus a man after my own heart, even when he flirts with blasphemy by pointing out an error in The Mythical Man-Month. And D looks like a v. interesting language, for example permitting all that meta-programming stuff without the bananas syntax to which we have failed to become accustomed and, more importantly, solving the ages-old with dilemma. (If there is possibility of an ambiguity between a with'd field and an in-scope identifier, the compiler borks an error. Bonk. End of.) That is all very satisfactory. But it is a bit obscure. What if nobody could compile me in 20 years? That would be a true legacy, but not the type I am looking for.

The opposite of obscurity would be obtained by using the language described by JavaScript: The Good Parts. Douglas 'JSON' Crockford's tome differs from the other books: instead of defining a language it is extracting a gorgeous subset from a rotten whole. But natch we get to roll in the muck too, and what fun it is. For example, did you know about this, fellow amateur JavaScript programmers?

'' == '0'   // false
0 == ''     // true
0 == '0'    // true

Hmm, I do like the idea of a programming language that contradicts itself. Sets up the possibility of all kinds of interesting subtleties.

Actually, now I come to think of it more carefully, this isn't going to be my choice, is it? It's down to you. I can hardly be called upon to compose my own epitaph.

Anyway, the above should give you plenty of ideas. But don't tarry of the task for too long, for as we say in the biz

while { crocodile;}

which, being translated into rhyming English means

In a while, crocodile.

®

5 ways to prepare your advertising infrastructure for disaster

Whitepapers

5 ways to reduce advertising network latency
Implementing the tactics laid out in this whitepaper can help reduce your overall advertising network latency.
Reg Reader Research: SaaS based Email and Office Productivity Tools
Read this Reg reader report which provides advice and guidance for SMBs towards the use of SaaS based email and Office productivity tools.
Email delivery: 4 steps to get more email to the inbox
This whitepaper lists some steps and information that will give you the best opportunity to achieve an amazing sender reputation.
High Performance for All
While HPC is not new, it has traditionally been seen as a specialist area – is it now geared up to meet more mainstream requirements?
5 ways to prepare your advertising infrastructure for disaster
Being prepared allows your brand to greatly improve your advertising infrastructure performance and reliability that, in the end, will boost confidence in your brand.

More from The Register

next story
Windows 8 fans out-enthuse Apple fanbois
Redmond allows 81 Win 8 devices to use one user ID, solving side-loading shemozzle
'200 million' fanbois using iOS 7 just a week after release - study
Plus: Most US iDevice users are drinking Cupertino's latest Koolaid
No luck at all for BlackBerry as Messenger apps launch stalls
Leaked Android build 'causes issues,' is withdrawn
App Store ratings mess: What do we like? Sigh, we dunno – fanbois
How do I know what to download if I don't know what everyone else is doing?
OUCH: Google preps ad goo injection for Android mobile Gmail app
Don't worry, fandroids, wallet-plumping serum won't hurt a bit
Launchpads, catapults... what a load of - WAIT, there's £15m for grabs?
Quango sprinkles cash on games, animation and trendy meeja types
Apple iOS 7 makes some users literally SICK. As in puking, not upset
'Eye candy really is as bad as classical candy is for the teeth,' writes one
Google reveals its Hummingbird: Fly, my little algorithm - FLY!
Update brings Googleplex one step closer to sentience
Oracle hides ExaLogic price cut
Old price lists prove price halved, so why has Big Red deleted the post announcing it?
prev story