Black Pepper Blog

The thoughts and musings of our team

Tag >> JAOO

JAOO 2008 was brilliant.
My top three talks, as requested by the conference feedback form:
  • Failure comes in flavors by Michael T. Nygard: because the lessons in how to prevent and recover from failure were valuable and the failure stories were funny.
  • Software Architects and Testing by Peter Zimmerer: because the message of making testing your responsibility, as software architect, and promoting testing practices to your team, was right.
  • The Lively Kernel by Dan Ingalls: because of the mind-boggling demo of rotating stars, clocks and worlds created on a base of JavaScript and SVG.

My other feedback was on water.

“It is about bottled water. This comes at a big environmental cost. I suggest that instead of offering free bottles of water every day, each conferee gets one empty bottle which they fill as required from water fountains or water coolers placed around the conference area.




This morning got off to a slightly shaky start with Lars Bak's presentation about the V8 JavaScript VM that's in Google Chrome not being visible on the screen for about ten minutes while they struggled with the technology. When he eventually got going, it was worth it, and very interesting to hear about some of the challenges in representing JavaScript classes within the VM. They ran some benchmarks - a browser race animating a circling spinner and some more conventional comparisons - between Firefox and Chrome. While I do tend to take these things with a pinch of salt, Chrome was genuinely around ten times faster than Firefox, which is at least enough to make one want to try it out. Now all we need to do is wait for the Linux and OS X ports which, Lars assured us, aren't waiting on V8 - that's done. The graphics is taking a little longer...

The highlight of the day was definitely Michael Nygard's long talk (the JAOO term for two back-to-back sessions) on failure. He presented some great war stories and examples of the kinds of failure that developers can generate with consummate ease when deploying applications to large-scale production environments. He expressed them as anti-patterns in the first session, and then spent the second offering some suggested patterns to be applied to counteract, or rather, prevent them occurring. He's an entertaining speaker, and I'm sure has sold quite a few copies of his book,
Release It!, as a result. I ordered a couple of copies for the office pretty much straight away.

In other news, Jim Coplien didn't shy away from insulting his audience and provoking controversy (as usual, some might say) in taking architecture into an agile world. I'm not sure that he actually ended up talking about architecture as such, but then it's one of those terms that can be used to mean many different things depending on the context. The other sessions of the afternoon were less spectacular - the ones on REST blogged about by Badger covered a lot of the ground that we've been looking at in the office recently, and which will, I'm sure, be covered by other Black Pepper blogs to come.


Tuesday

(Late Monday evening) Chatting with Martin Fowler and ThoughtWorks founder Roy Singham, I was asked to compare JAOO with other conferences that Black Pepper employees attend. The only real comparison for me was with JavaOne because that's the only other conference I've been to in recent years. But the difference is clear and JAOO wins by a Danish Mile.

The quality of the speakers, the material they cover, the ease of access from Europe, the focus on development and developers and the non-partisan context all make JAOO a much more exciting and rewarding conference for me. I still love JavaOne, but JAOO as something special for developers seeking to do better.


Just back at the hotel after a fairly long day and some interesting sessions. There seem to be a few very popular phrases here this year. People are talking about the differences between declarative and imperative programming languages - a great session by Anders Hejlsberg this morning on programming languages and the fact that we should perhaps be focusing more on the 'what' of programming rather than the 'how', with examples from C#, Linq and F#. Since we're reaching the limits of Moore's Law, it'll enable language systems to have more control of the 'how', and perhaps more importantly, the 'where', making systems more easily parallelisable and thus distributable.

Then I found out about Gant. It's Ant, but with build files written in Groovy rather than XML. There we go, the declarative/imperative comparison again. All the usual Ant tasks are available and accessible with syntax that looks very much like the original XML but translated directly to Groovy. If your build files are trivial, then it doesn't really gain you much, but if you're finding that your build.xml isn't very DRY, or you're ending up using a lot, then it's probably worth giving it a try. And if you're finding that you have lots of cause to use ..., then you probably ought to look at gant. If there are tasks that you find you can only achieve by calling out to external scripts (such as the example that we were talking to Martin Fowler about over lunch then there's no question. There's even a nice tool to convert your existing build.xml, ant2gant and a gant ant task so that you can write a 3-line build.xml to integrate it with your favourite CI tool. Nice.

After lunch there were a couple of interesting-looking talks on cloud computing, but one tried to pack waaay too much information in to the available time and so ended up going too fast; the other overran wildly and was a bit too much of a product pitch for VMWare (as I had feared from the abstract) for my liking.