Thursday, 25 August 2016
Programming Language Timestamp, 10 years on
It's been ten years since I wrote my Programming Language Timestamp, a sort of time capsule of how I felt about the various programming languages I used, or used to use, at that moment in time.
Ten years is a long time, and I no longer write code professionally. So while a major theme of my 2006 article was making the transition from university—where I focused on intellectually interesting languages like Lisp and Prolog—to the working world, dominated by Java, the major themes in 2016 can be enumerated as follows:
- I have a lot less time to program, between a non-technical day job and having kids
- The languages I use have a lot more to do with what I'm comfortable with, than what I think is ideal.
So, without further ado, here are the languages I use now, in order. The reality is far from my ideals, but this is what life getting in the way looks like.
1. Perl. The Swiss Army Chainsaw is today far from the dominant scripting language it was when I learned it in high school. And rightly so. It's a mess, the primary merit of whose syntax is that there's a perverse pleasure in producing code that, to the non-initiate, looks absolutely incomprehensible. (Like this gem from one of my recent scripts):
while (<>) {
s/&/&/g;
s/>/>/g;
s/</</g;
if (m/^\#(.*)$/) {
$comment .= "$1\n";
} else {
m/(^.+?)=(.*)$/;
...
The thing is, I learned Perl so well back in the day, and it's so useful for text processing, that I still end up using it all the time. (Another big factor was that I was able to install it without admin privileges, which I don't have at work, so I have access to it whereas I do not have access to a JDK.) The idealist in me would prefer to be using Guile as my scripting language, and I'd recommend others learn Rexx or, most obviously, Python, rather than Perl, but Perl is what I know, so that's what I use.
2. Java. Java, formerly my bread and butter, is still what I turn to for anything requiring libraries (I never really got confortable with Perl modules but I know the Java world inside and out). It also powers all my web-based projects. Thus it holds on to the number two spot fairly easily even though I'd in theory like to be moving away from it, in favour of...
3. Clojure. I've written about Clojure on here a couple of times. I'm still bullish on the language: if I can do Lisp and still have access to all the Java world I know so well, it should be perfect for me. But I just haven't had the time to build up the language knowledge and the workflow for it to become that go-to language. It's definitely my programming skill priority—it's just that I have so little time to consecrate to improving my programming skills these days.
4. VBA. Sadly, it might have been more honest to list VBA ahead of Clojure and maybe even Java, but I just can't stomach the thought of that. Working in an office job with Excel as your tool though means that macros are often the only programming option available (if I need to share the functionality with others; if it's just for me I can and will use Perl instead). But to say that it's not my favourite language or first choice would be an understatement.
5. Python. Wait, didn't I already explain that I don't need Python for anything, since it doesn't bring anything useful to the table of someone who's already mastered Perl and Java? That's true, for me, but if I were starting over from scratch, Python is the most logical choice as an easy programming language to familiarise oneself with, that has huge library support, and can scale to larger projets more elegantly than Perl can. I don't use it because I'm not starting from scratch.
But my son is. I owe a great deal to my father teaching me BASIC on the Commodore 64 back when I was in grade school, so I certainly want to give my own kids the same advantage. And while his first taste of programming came in the form of a game we worked on together in Clojure, that language is probably a bit too dense for a first introduction to writing code. So I've bought him a fun and colourful book aimed at teaching kids to code, and it uses Python, which I agree is an excellent choice. So in guiding him through that I'm starting to get my toes wet with that language as well, although I don't think I'll ever do more with it than help him debug his code.
And that's about it. As in 2006 I don't really consider things like SQL, bash, HTML, or Javascript "programming languages", so although I still regularly use them I won't list them here. And I've dabbled in Lua, Objective C, and newlisp, and thought about learning assembly for real, but those just aren't likely to get much attention going forward if I'm being honest. Hopefully in 2026 when I next do this exercise (don't hold your breath, but I wouldn't have guessed the site would still be here ten years ago either), by then Clojure will have moved up the list, but apart from that, it looks like I'm getting set in my ways. I think I feel middle age creeping up...

I suppose that Zeus still comes out ahead in this little battle of asexual reproduction, both because Hephæstus came out deformed, and because Athena was viewed as a far more important deity in the Greek pantheon. But it's an interesting link between the two, all the more so since they have such similar rôles, in terms of teaching men how to do things (in the form of wisdom and strategy with Athena, and technology and implementation, for Hephæstus). By all accounts, Athena and Hephæstus got on reasonably well, so even though with their birth stories one might have imagined they would become rivals, it seems instead to have created a sort of bond between them, even though technically they are not even half-brother and sister.
I've really been enjoying the latest
Whereas most disguises lower your suspicion in different areas (dress like a cook to blend in the kitchen, where you might poison the food being prepared, or dress like a security guard to access the security monitors and turn off a camera), there is nowhere on earth you can go where being dressed like a "vampire magician" will not arouse suspicion! The video below shows some of the hilarious reactions that you can arouse when wearing this ridiculous outfit. (It also gives you an idea of how elaborate this game is; if there's this much dialogue for a costume most people will never find, you can imagine how vast this game is.)
Take for a moment the contrary opinion that they are right. There is no reason why a rigid standard of contemporary political correctness should stop at Rhodes' statue. What about the chapel? ("Offensive to non-Christians") What about the Codrington library? ("Built by a slaver") What about the Queen as our Visitor? ("Offensive to republicans") Was not British colonialism far more destructive in North America and Australia than it ever was in Africa? Or can that history safely be glossed over, since those indigenous populations have been reduced so close to extinction that they do not have the numbers to protest? Singling out Rhodes' statue makes no sense, since if the values espoused in

The bluetooth-enabled version takes this accompaniment a step further, allowing you via an Android or iOS app to select and follow recipes directly on your tablet. (It even sends notifications when it's finished cooking!)
The best part of the app, though, is simply the fact that there are user ratings and comments with each recipe. It actually makes a cookbook way better to have notes from lots of people, not only to see whether the recipe works as advertised but also for little tips like "my kids love this one" or "adding one more can of tomato paste to this chili than the recipe indicates makes it way better".
(Enough that time I can cook on weeknights and still get the kids to bed on time, which I couldn't have done with the old cooker.)
The poem above, written late in Mandelstam's untimely short life, creates such a pure image. It embodies to me what the Acmeist ideals are all about. At the same time, focusing as it does on nature, it harkens back to timeless themes. In Chinese (and Japanese) poetry, such minimalist poems are seconded by minimalist language, vague allusions and a sparse economy of words serving to enhance the perceived purity of the word painting. Chinese being an isolating language—and classical Chinese extremely so—means that almost no space be wasted on grammatical elements (number, tense, or any of the usual elements of conjugation or declension).










