With 250+ lectures and 5000 attendees FOSDEM is by far and away the largest software development event that I have attended.
The entire event is organised by the community for the community and takes place at the ULB Campus in Brussels.
I spent most of my weekend in the Free Java Devroom; for a language which has fallen behind and become less popular in recent years, the room was extremely well attended to the point where people where being turned away. I suspect that this was due to the quality of the schedule and the recent changes in the governance structure of the OpenJDK project generating quite alot of interest in the community.
The Free Java Devroom was run by Tom Marble who did a great job keeping things on track and on-time over the weekend.
Mark Reinhold (Chief Architect, Java Platform Group, Oracle) kicked off the proceedings with a presentation about the current state of the OpenJDK project.
It was clear that Oracle is 100% behind Java; anything at Oracle that is not a database is written in Java so their business is dependent on the popularity of this platform. They currently employ over 20,000 Java developers!
For those of you who don’t know OpenJDK 7 went through a de-scoping exercise shortly after Oracle acquired Sun Microsystems; this re-planning means that OpenJDK 7 should be with us by July 2011 (instead of the end of 2012) and will include the following new features:
- Project Coin; a number of minor language improvements. Joe Darcy gave an excellent overview of these features in a separate session.
- InvokeDynamic; vm and language extensions to improve performance of dynamic languages built on Java
- Fork/Join; updates to the concurrency and collections frameworks under JSR-166.
The following features have been dropped from OpenJDK 7 and will be delivered in late 2012 in OpenJDK 8:
- Project Jigsaw; modularization of the Java platform and standardization of dependency declarations ala Debian packaging style. Mark ran another session specifically focused on this project.
- Project Lambda; higher developer productivity and better leveraging of multi-core CPUs.
- Remaining language changes from Project Coin.
I understand the need for the split in order to deliver incremental improvements to the Java platform sooner rather than later; however it is frustrating that Jigsaw won’t be delivered until late 2012. I think that this project would have moved the Java development community forwards in terms of improving dependency management of Java libraries and applications which will make the lives of Linux distribution packagers much easier.
Mark then went on to talk about the new OpenJDK Governing Board that was recently announced. This generated a-lot of discussion as the board has been appointed rather than elected; 2 people from Oracle (including Mark), 1 from IBM (effectively killing the Apache Harmony project but thats old news now) and two from the community at large (one who is from Eclipse). Surprisingly other commercial open source companies such as Red Hat who make a significant contribution to OpenJDK are not represented on the board. The general feel was that for an open source project this was not the right approach; it was suggested that the board be increased to 7 individuals (the last two being elected from the community) to achieve some balance in the governance of the project.
Oracle’s ownership of the Test Compatibility Kit for Java and the licensing of it to projects is generating a lot of ill feeling in the community and with other companies wishing to build compatible Java runtime environments. Again this generated a-lot of debate; Azul were present in the room and have been waiting for a TCK for over a year now – supposition is that Oracle is blocking this for commercial reasons.
Java Packaging For Linux Distributions
One hour of the schedule was dedicated to packaging of Java for Linux distributions; unfortunately Thierry Carrez was unable to attend and present about ‘Why Linux Distro’s hate Java’ due to illness.
Torsten Werner (Debian Developer, Java Packaging Team) kicked off with a presentation about the history of Java in Debian and the challenges currently faced by the Java Packaging team. The Java tool-chain in Debian is now looking pretty good; Ant and Maven are both packaged with associated CDBS and maven-*-helper packages to aid building Java from source.
Stanislav Ochotnicky (Co-founder Fedora Java SIG) then gave a presentation on what Java upstream projects can do to help downstream Linux distributions package their applications and libraries more easily. This boiled down to a few key points:
- Don’t patch dependent projects as this is effectively branching; get the feature accepted upstream rather than maintain the branch.
- Avoid including obscure, unmaintained projects in your projects dependency chain.
- If you do bundle dependent libraries with your source code, make it clear what they are and which versions you are using.
- If you are using Maven, make the most of it meta-data that the project definition files can include to describe your project.
- In-fact use Maven; it makes packaging easier
I think that this last point is a key point for Linux distro’s going forwards – although Maven is a much larger packaging challenge in terms of dependencies and complexity when compared to Ant, its by convention approach to laying out a Java project, defining meta-data and defining dependencies should ultimately make Maven based projects much easier to package due through tool-chain automation.
The Best of the Rest
In addition to attending the majority of events in the Free Java Devroom I also managed to catch the keynote from Eben Moglen ‘Why Political Liberty Depends on Software Freedom more than even’. Although I don’t agree with everything he said, he did make some good points about Free and Open Source software solutions challenging traditionally propriety/closed source markets; the concept of using wifi mesh networking to remove reliance on network delivery from centrally controlled companies is a neat idea to provide independence and choice (and resilience when the government disables central internet services…). He talked quite a bit about the ‘Freedom Box’; an initiative to deliver a small, cheap inexpensive computer to secure freedom in the home – I noticed that there is already a Debian project aligned to this initiative.
It is clear that Java is at a critical stage in its lifecycle; the decisions that Oracle makes around how this platform will be developed and governed going forwards will be key. I think that Mark Reinhold has a very difficult job todo; balancing the commercial demands of Oracle whilst maintaining the support of communities who both develop and use the Java platform will be key.
I also think that FOSDEM is a great conference that I would recommend to anyone that is involved in the world of Free and Open Source Software; thanks to all of the volunteers who make FOSDEM happen!