OpenJDK Hackday

Since I am currently possessed of an excess of free time, I’m always looking for events to participate in which will be entertaining and/or educational. Yesterday, this led me to attend a hackday run by the London Java Community.

These hackdays are based around OpenJDK, the reference implementation for Java Standard Edition. People generally work on whatever they like (it is a hackday, after all), but one of the main goals of these regular hackdays is to provide an environment where neophytes to OpenJDK development can try and start making contributions. There are a handful of active contributors to the OpenJDK codebase around to provide support and guidance to people getting familiar with the language.

For myself, the last time I wrote Java code was in my final year of university, which was a Very Long Time Ago. I also have no burning desire to pick up Java development again. This leads to an obvious question: what exactly am I doing spending time at a hackday for the reference implementation of Java?

The short version: it’s all Richard’s fault.

The slightly longer version: Richard had mentioned the OpenJDK hackday at the pub a few weeks ago, and tried to dragoon several of us into coming along. When I objected that I wasn’t a Java developer (arguably I’m not any kind of developer, but that’s a larger problem), he promptly shut me down:

It’s fine! We need help sorting out build tools and stuff. Chef! Vagrant! Devops! You know about that kind of low level rubbish!

(I may be taking some liberties with the details, but I maintain that this captures the core of his argument.)

And so it was with some trepidation that I made the long trip to Shoreditch on Saturday morning; not entirely sure what to expect, and somewhat doubtful that I would be of any use. I needn’t have worried. Everyone at the event was very welcoming, and it turns out that one of the main problems that needs solving doesn’t require any Java knowledge at all. (Namely: the problem of providing a reproducible working build environment so that new contributors can quickly get stuck in to OpenJDK develpment.)

We very quickly formed an “infrastructure” room, where between 5 and 10 of us over the course of the day worked to try and make progress on producing a deterministic base virtual machine and a build environment to go on top of it. I learned a great deal, and found myself actually able to make some meaningful contributions.

There’s still lots of work to be done, and I suspect I’ll be working on making a better OpenJDK development environment for some time to come.