dagblog.
← Archive

Notes from Devoxx 2011


My GoodData colleagues and I went to Devoxx, and I have to say it was worth it. Devoxx is surely the best Java conference in Europe, and this year it took place in Antwerp for the tenth time. Seven tracks ran in parallel from half past nine in the morning until seven in the evening, so you could choose what interested you. Although it is a Java conference, there was a wide range of talks on related languages and technologies built around the Java Virtual Machine (JVM). I tried to pick talks that had little to do with Java, for two reasons. I don't agree that gradually bloating the language is the way forward for future Java versions. I also believe you should attend talks on technologies and practices you don't know, because those are the ones you'll learn most from. In the end, I heard only snippets about Java here and there.

Clojure

I saw Lisp, specifically Clojure, for the first time in two talks by Alex Miller. I admit that the syntax was so exotic to me that I had to tune out most of the slides for the sake of my sanity. A few things I took away: a Lisp dialect, a functional language, compilation to JVM bytecode, immutable structures, code is data, and Emacs in place of an IDE. Clojure's power came through in the talk Stream Execution with Clojure and Fork/Join. It described how revelytix.com used Clojure to query RDF documents held in relational databases with SPARQL. It works roughly like this. You send a SPARQL query to an HTTP interface. It builds an AST and uses that to create an execution plan. The plan is optimized and turned into SQL statements, which run in parallel. The results are merged and sent back as the response. All of that in about 3,000 lines of Clojure, if you please. I was impressed, although I would have had an easier time understanding Elvish poetry than the source code that appeared on the slides a few times.

Continuous Delivery

Every change in version control is automatically turned into a new version of the product and can end up in production. You're almost tempted to tap your forehead and move on, but it really works. The speaker was Dave Farley, author of the book of the same name. They put this into practice at LMAX, a sizeable enterprise that makes its living brokering financial transactions, a long way from a garage startup. In addition to what I wrote earlier in Continuous Deployment (remember that the goal is to deliver value to your customers), I'd highlight one important idea from the talk. If you ever want to deliver your software continuously, you need a reliable release process at every level, and anything that depends on a person intervening counts as unreliable. For more, see 8 Principles of Continuous Delivery.

HTML 5

I had completely ignored HTML 5 before. I have to admit that it was probably the biggest gem I found in Antwerp. Someone said HTML 5 is a game changer, and I have to agree. It offers a single development platform for phones, tablets and personal computers. Every talk mentioned how many problems it has, including browser incompatibility, missing tools and performance compared with native applications. At the same time, it offers enormous potential. One technical idea caught my attention. HTML 5 makes a change in web application architecture possible, without requiring it. With HTML 5 we can write applications that don't depend directly on an online server connection and can even keep state.

Cloud and Java

I saw a Java EE keynote with the cloud as its main topic. I originally wanted to say that the Oracle guys' idea of the cloud and the applications written for it was worlds away from mine. I eventually concluded that my view is shaped by my experience and the changing needs of the company I work for. Java EE really is an effort to deliver standards to the potbellied gentlemen in corporations. Once you accept that, you'll look at Enterprise Java less critically. You'll take the effort to support JSON and JPA over NoSQL databases in the next release with a little indulgence. The biggest contrast with how I think about it, or at least how it struck me, was the idea of a homogeneous cloud in terms of the applications and services it hosts. For Java EE this meant EARs and WARs in an application server. I think that applies only to a certain group of applications in a certain kind of environment, and the potbellied gentlemen come to mind again. If you have more than EARs and WARs or depart from that vision of the cloud in other ways, for instance in the technologies you use, Java EE becomes a ball and chain.

The platform-as-a-service providers Heroku and Cloud Foundry gave contrasting talks. Java EE and those services might seem to be as far apart as Greece and a balanced national budget, but the opposite is true. Both services understood that today's applications are developed in more than one language and with more than one technology. Cloud Foundry deserves a closer look because I think its idea is great. A hidden problem with cloud computing today is vendor lock-in, or being chained to a single supplier. Build your application on Amazon today and you're more or less tied to its infrastructure. Moving to another provider will hurt. Cloud Foundry sits between your application and your cloud provider. You build the application and the monitoring and management tools against the Cloud Foundry API, which adapts them to the underlying platform. Moving between providers is then less painful. VMware is behind Cloud Foundry, but the project itself is open source. I'd compare the model to Linux distributions, with Stackato as an example.

Conclusion

I was intrigued by Disruptor for moving data between two threads at terrific speed. Read its technical paper and you'll find an asynchronous event framework. I was also interested in remote actors in Akka 2.0, see page 27, and the Play framework, which bypasses the Servlet API completely and is built around the idea of actors. Tim Bray's keynote disappointed me. All I took away was the bold idea that the market for mobile applications is in developing countries. The discussion panel featuring Joshua Bloch, Brian Goetz, Ben Evans and Mark Reinhold, among others, struck me as politically correct chatter that said very little. Either everyone was still sobering up after the previous day's party, or it needed better moderation and questions. I'm tempted to say Filemon would have done better than Tor Norbye. Nobody really brought anything new to the table, and above all they tried to avoid offending anyone.

That's how I saw Devoxx 2011.

I also recommend Lukáš Křečan's notes, which are funnier than mine. With a few exceptions, we went to different talks.

Medium version

Related articles

Related CZ Podcast episodes