I've spent the past few days at the SPA2012 conference at the BCS in London. It's the first time I've been, and so I wasn't really sure what to expect. It was certainly an interesting few days, and I learned a few things and disagreed with a few things - but it was all the more interesting for it.
I'm not a developer. I used to be, but I left full-time development behind quite a few years ago. I still remember the rudiments, and still read code from time to time, but it's been a couple of years since I wrote code for fun, and even longer since I wrote it professionally. When I was a full-time developer, C++ was the language of choice. OO was the buzzword and Java was a newcomer. Most of what was being written was being written in C++ and legacy code was in C. I then moved onto Symbian, an unashamed C++ shop. So C++ is where I spent the majority of my coding days.
These days, the code at work is Java and Python. There's a bit of C++ lurking in corners, but it's mostly Java. I have written some Java, and I can read it, but I have never written it in a serious sense.
Almost everyone else at the conference was a developer. Even though a lot of the sessions dealt with management issues, there was still a feel of code being key and hacking being the pastime of choice. So - it's time for an admission. I don't really like code. Don't get me wrong, I love solving problems and I love ingenious algorithms, but code doesn't excite me. The theory of programming languages is interesting, and even compilers are pretty interesting. But I've never found the code used the implement those things particularly interesting. When I read a good book, I'm thrilled by the images conjured up by the words - the words themselves are doing their job well when you don't notice them. When I listen to a piece of music, I'm listening to the beauty of the composition rather than being thrilled by which keys are being played on the piano or which strings bowed on the violin. And software is the same for me - the beauty is in the design and the algorithms, rather than in the keywords and the variable names.
And so, I felt a bit like an intruder at the party. I felt like the outsider who wasn't bringing up an iDE and hacking away in every break between sessions. Maybe that was my natural inclination to feel the outsider, though.
So, I picked my sessions according to what would interest me. And two sessions stuck out for me as being the most interesting.
Firstly, there was a case study from Oxfam talking about their project to move their server to "the cloud". It's trendy to move to "the cloud" and it was interesting to hear a well-presented case study from someone who'd actually tried the move. The move was a success, but a few important lessons were presented learned along the way. The move was made for economic reasons, rather than for technological reasons. In a conference where technology was king, and at times it was easy to feel that the geekery was overtaking money-making as the driver for business, it was refeshing to hear someone talk about the economics and how a technological solution actually gave economic benefits. It was also interesting to hear about the immaturity of the market for cloud-based services. It's easy to tell a company how many servers you want, or what OS you want to run - but it's harder to find companies who'll provide fully supported services with flexible capacity.
The other session was one I went to on a whim. There was a session called "A Good Read" - the idea being that three people would present something - most likely code - and talk about why they thought it was a good read. Two out of the three presentations were fantastic. The other was Tom Gilb promoting his own book as "A Good Read" which I felt was a little disingenuous. The middle third of the session wasn't comfortable listening. Anyway, less of the negative. The first presentation was a brilliant recreation of this xkcd cartoon in Mathematica. It was brilliant for several reasons. Firstly, it was a joy to see Mathematica being used for something other than symbolic integration. Secondly, many of the computer scientists in the room had never used Mathematica and it was genuinely interesting. Thirdly, as a mathematician, it was thrilling to see the brilliance of Mathematica again after so many years away. It's not quick, it's not efficient - but it's pretty much unrivalled for doing wonderful programmatic maths. It wouldn't be so easy to write a recursive function which outputs a vector graphic of a self-referential cartoon in many other languages.
I had gone to the session expecting to see Java, or Python. Or Perl. Definitely Perl. But the second great presentation was a C codebase. A TCL interpreter from years ago, written in C. The structs and associated functions starting to hint at classes and it was easy to see how C++ sprang from this kind of C code as a natural progression. A historical marvel!
So - would I go to SPA2012 again? Well obviously not, as it'll be called SPA2013 next year. But yes - I think I would. But maybe I'd choose my sessions a little more carefully. But as long as there's some Mathematica, I'm happy!