Devoxx 2011, the main trends

le 03/12/2011 par Michel Domenjoud
Tags: Software Engineering

"Devoxx11"

One of the biggest Java conference in the world took place in Antwerpen, Belgium on last November. This year, Devoxx main themes were (in no particular order)

  • The future of Java
  • Alternative languages on the JVM
  • HTML5
  • JavaFX
  • Android
  • A bit of Cloud, NoSQL and high performance architecture

We also had a great announcement about a new conference coming in 2012: Devoxx France!

Obviously, OCTO was there. In this article we won’t cover the sessions in details. A lot of blogs already did it. We’ll however summarize this edition’s main trends and give our impressions.

Java

Java SE & EE

All announcements from Oracle about Java were already made at JavaOne, but the two opening keynotes gave us a good reminder and here are the key points:

  • Java SE 7 is out since last July and brings several new functionalities.
  • Java SE 8 is planned for 2013 and will include mainly Jigsaw (Java modularity) and Lambda (closures in Java) projects.
  • Java EE 7 is planned for Q3 2012 and will be cloud oriented. Standard metadata will be provided for easing provisioning, multi-tenancy support, elasticity, etc. We should see an emerging standard for solutions such as Cloud Foundry from vmWare or OpenShift from RedHat.
  • Other standards should evolve, with by example a 2.0 version for JMS, which had no new version since 2003.

Mark Reinhold gave us a talk about Project Jigsaw, which aims to allow Java applications and the JDK itself to be natively modular. For example,  we should be able to deploy Java applications as RPM package. We will also be able to take only small parts of the JDK for specific applications. This project is interesting, but still  frightening on one point : they don't seem to be really close from projects like Maven which already had to deal with many modularity and dependencies problems for years : can we hope they won't fall in the same traps as Maven in the beginning?

Another important point is the great emphasis made on JavaFX 2, which is now the main GUI framework for thick clients and mobile. Therefore, no more investments will be done on Swing, even if Oracle will continue to support it. A lot of sessions were about Java FX, and it was quite conclusive. Let’s hope it won’t became the same flop as Java FX 1.

We also had two great retrospectives about Java by Joshua Bloch, who made a really in depth analysis of pretty much all the original JDK classes! Coming from the guy who gave us the generics, it’s a quite interesting talk. Watch it on Parleys.com when it will become available, you could discover some tricky details about Java.

The Oracle guys also tried to give us some messages:

  • They (Oracle, but also the JCP) take care of Java, and developers shouldn’t worry about its future.
  • Oracle’s behavior towards Java is all about transparency. First of all, Open JDK is now the reference implementation of Java. But the most important point is the new JCP 2.8 process, which made all JCP discussions public, and the arrival of new members such as Twitter, and London JUG and SouJUG (Brazil) in executive committees. We can hope that it will allow a lighter mood than last year (with Apache’s resignation).

Talking about mood, a good moment to feel opinions differ was the debate we watched on the last day. It involved Mark Reinhold and Brian Goetz from Oracle, Joshua Bloch from Google, Emmanuel Bernard from JBoss, Ben Evans from London JUG and Brian Prince from Microsoft. A lot of questions were really controversial and although most answers were quite evasive, we had a glimpse about the cold war between these companies :

First, it’s always interesting to see different companies’ philosophies, from Oracle, very corporate, Google, open minded with a startup spirit, to JBoss, with a full open-source model. It’s also really unfortunate to see how bad the relations between Oracle and Google are, and to see Oracle guys acting as Android simply doesn’t exist even if it is now the most prevalent mobile OS.

Apart from Java EE and Java SE, some other hot topics were addressed :

Java on the Cloud

While Java EE 7 should bring standards for a Java PaaS platform next year, these platforms are already here today, and seem really promising: Cloud Foundry from Spring Source and OpenShift from Redhat/JBoss.

Cloud Foundry is available in beta since april 2011. It provides an open PaaS platform under Apache license and offering multi languages support : Java, Ruby, NodeJS … Cloud Foundry can be used either on CloudFoundry.com or any other commercial provider, either on your private cloud, or locally for development purpose with Micro Cloud Foundry. It provides also integration with several third party technologies, and can be fully integrated with Spring Framework.

OpenShift is a promising concurrent to Cloud Foundry, using JBoss and Redhat products. We had a great demo, especially on how to manage applications with JBoss Forge and Git. Some differences from Cloud Foundry are that it is for now restricted to Java, not open sourced yet and that you can’t instantiate it in a private cloud.

A new generation of application servers

They made really great efforts in the new version of JBoss Application Server 7. We tested it, and it’s just amazing: fast start (1,7s), low memory usage, fast deploy and undeploy, easy to configure, and testable.

It sounds like other application servers such as Websphere or Weblogic are now far far behind: using this open source server for plain Java EE applications should be considered more than ever.

Other languages on the JVM

Most of you already heard about Scala or Groovy. We will now have to count with Clojure, Ceylon, Kotlin and Fantom which are all new languages on the JVM. Why in the world is everyone creating a language? It seems that everyone now agrees that the JVM is an incredible piece of software but that Java still has space for improvement.

All of them are trying to solve something. Pick you favorite: less line of code, more modularity, having functional programming, make it easy to do parallel programming… My personal guess is that we haven’t found the real “Java killer” yet. But all these great language experiments will certainly give good ideas to its inventor. Meanwhile, these languages are to consider. They might help you on your current project. We had the “silver bullet framework”, now it’s time for the “silver bullet language”. Use them wisely.

Java & NoSQL

This year, we saw 2 emerging projects with quite the same goal, but different approaches: Spring Data and Hibernate OGM.

Both of them try to give an abstraction layer on top of NoSQL databases for Java application, particularly for the really tough task which is data denormalization (Chris Anderson showed used really well how hard this point can be).

Where Spring Data started a different project for each type of NoSQL database, Hibernate OGM tries to apply JPA concepts on top of NoSQL databases, starting with Infinispan (an in memory datagrid solution). This approach is quite ambitious but they take the problem step by step: for now, they only handle entity modeling and simple JPQL queries.

Web and HTML5

HTML5 is a really hot topic, and we saw some very appealing demonstrations. While HTML5 isn’t fully standardized yet, most web browsers already support it, except from Internet Explorer.

With HTML5, we can now easily do web offline, game programming, use a webcam and microphone, do voice recognition, but we also have many simplifications in HTML tags.

Google is pushing hard on it. For instance, Paul Kinlan (from Google) gave us a great demo around webkit and Chrome HTML5 features.

Linked to that, everyone is also trying the make it easier to code in the browser. It could be the old way, but easier (jQuery) and the new way (Dart… yes, even Javascript just got competition).

Mobile & Android

As we were five Java-ists we haven’t attended much sessions around mobile, but the Android keynote by Google was clear: the future is mobile. Everything is moving to the mobile so you, developers, should start to move to where the business will be. And you should hire a designer for you GUI…

Conclusion

We are living in interesting time my friends. Java and its developers took a five years vacation (healing from the generics?) but now they’re back. Jump in the train and keep learning. Because they are moving, they are moving fast.