J1 Session Blog: Technical General Session
This session was kind of an addendum to the morning keynote, presenting more technical details about the Java roadmap. One topic was JDK 7. This release will focus on three main topics: modularity, multi-language support, and productivity.
- Modularity: Finally, it is possible to break up a Java application into components and define dependencies among them. This will also be used to modularize the Java class library and ease the installation of the JRE. Running a Java application will only require the dependent modules and not the entire Java class library as it is today. OSGi provides the same for the Eclipse platform and I was wondering why this was not used nor even mentioned.
- Multi-language support: the JVM should not only be a perfect host for Java programs but also for code written in JRuby, Jython and the likes. Why don’t they never mention Groovy, anyway? In order to improve the performance of these dynamic languages a new byte code instruction was added (by the way the first new byte code in 14 years!)
- The productivy improvements come along with small changes to the Java language. The project is called Coin. However, it is far from sure which changes will be included in Java 7. Language changes (such as closures) can be very expensive to implement. Sun does not have unlimited resources (even with Larry Ellison playing sugar daddy in the near future) and these changes are not wished for by all developers.
Java EE 6 as the other main topic of this session is focused on simplicity (obviously they need more than one major release to tame the EE beast because this was already a main topic with Java EE 5). Bean Validation as another addition to Java EE seemed quite interesting to me. However, bean validation can only be fully leveraged if the client is running in the JRE as well. Nobody wants to duplicate validation logic for the UI.
The session still left some questions unanswered. For example, what’s the relation between a Java EE profile and Java 7 modularity. Are they orthogonal? Why didn’t they use OSGi although the GlassFish server makes use of it. Maybe I get answers to these questions later this week.










