Erlang User Conference 2009 – In the Wild

About a month to go now to the 15th Erlang User Conference in Stockholm.
For the first time ever, the conference is arranged by someone other than Ericsson, namely Erlang Training and Consulting Ltd. In fact, it is also the first time since 1998 that the conference is held outside Ericsson premises. Then, it was held at Van der Nootska Palatset for reasons I no longer recall (I guess we wanted to spice it up a little).

This year, it will be at the Astoria in the center of Stockholm. The reason this time is clear: the EUC has outgrown the largest lecture halls at Ericsson. With a month to go, we have more than 200 registered participants, and we are now investigating what the maximum capacity of the Astoria is, to see how many more we can squeeze in.

Another difference this year is that the speaker roster filled up in no time! We now have 14 talks, which is a busy program for a one-day conference! You have every chance to make EUC week an intense learning experience, with courses on Nov 9-11, the EUC on the 12th and on the 13th either a hackathon hosted by Klarna or ProTest tutorials in Älvsjö south of Stockholm. Add to this the chance to meet people like Tom Preston-Werner, founder of Github, Rusty Klophaus, father of Nitrogen, and the members of the Erlang/OTP development team.

There is still time to register.

Concurrency Track at JAOO 2009

I had the pleasure of being invited to sit on the Expert Panel in the Concurrency Challenge Track at JAOO 2009 in Aarhus. JAOO is an impressive event, and the venue was very pleasant. Unfortunately, I didn’t have time to experience the surroundings or indeed the conference, except for the Concurrency track.

I did catch Simon Peyton Jones’ keynote speech in the morning. Simon is always entertaining, and as part of my background project to learn Haskell through osmosis, I wouldn’t miss a talk on Haskell type classes.

A large music auditorium is not the best for technical talks, though. I have had the experience of singing on such a stage, in which case the blinding spotlights can even have a focussing and reassuring effect. But for a technical talk, you really want to see the audience and sense whether they understand you. When singing you can’t well stop and ask ‘are you with me so far?’, so it’s better to just press on and do your thing – not always the right strategy for a tech talk. Simon, being a master of the podium, simply walked to the edge of the stage, shaded his eyes and asked the audience to wave as evidence that they understood. You don’t just learn Haskell when he is talking.

The Concurrency track was well stacked, with Brian Goetz, Kresten Krab Thorup, Dave Thomas, Rich Hickey and Simon P-J as speakers, and me joining them on the panel.

Brian Goetz gave the obligatory “Free lunch is over” talk, explaining the reasons behind the current multicore trend. I’ll admit that I haven’t been to that many commercial conferences, but my former employer Ericsson had both the foresight and resources to arrange many seminars over the years, inviting leading experts from Sun, Intel, SICS et al, to ensure that every software developer in the company got the message loud and clear. I assume that many have been exposed to similar indoctrination. But it is necessary, and most of all interesting – at least to all who thrive on challenge and new opportunities. Brian kept a good pace, making sure to repeat the key points regularly to make sure they sunk in.

Kresten and Dave played tag and gave an overview of actor-style modeling. Kresten managed to demo how awkward (albeit doable) it is to work with actors without appropriate syntax, and how nicely it could be formulated with the right syntax. An important point, I think, as I firmly believe that we tend to be much more affected by the mental cues built into the language syntax than we perhaps realise. I overheard parts of a discussion at breakfast about whether languages should “lecture us” on the best way to write software, or whether it should simply get out of our way as much as possible. I personally prefer opinionated languages, and my experience with use of Erlang (a very opinionated language) in large commercial projects has reinforced that view.

Dave accounted for some of his experiences with modeling concurrency with actors, drawing on human analogies. I grew fond of this style of modeling while working with Command & Control systems in Alaska. It’s tempting when trying to automate something to become a bit too theoretical and conceive strategies that look nothing like what humans would choose if solving the problem manually. My mentor back then, Col John (Shep) Shepherd, was a retired Air Force Colonel, former fighter pilot and AWACS Commander. He had no training on computers, but knew exactly what he wanted from a Command and Control system. And, like most who have not only trained for, but also seen combat, he had a fairly dramatic view on the consequences of failing to meet the requirements. Simple and intuitive strategies were favoured over the esotheric, and the results were nothing less than astounding.

Dave also mentioned a background in Command and Control, but we didn’t have time to compare notes in this regard. Some other time, maybe…

I will not say much about the panel, but the main criticism seems to have been that we did not disagree enough. Perhaps a few die-hard C++ and threading experts would have spiced it up a little? As it was, all members of the panel were advocates of functional programming and immutable data.

The afternoon session continued with Rich Hickey talking about Clojure’s strategy for handling values that change over time. A very well thought-out lecture with some very important lessons. Talking to some members of the Clojure Users’ Group in Denmark, it appears as if Rich’s approach works very nicely in practice too.

Simon Peyton-Jones ended the track with a talk on nested data parallelism in Haskell – one of his favourite research projects. A great talk. In the words of Ola Bini: “Neat, geeky stuff.”