Impressions from JavaOne 2016
Conferences are the perfect place for breaking out of the daily development business and getting in touch with the hype waves that are rolling at the moment over the eco system. JavaOne 2016 in San Francisco – Oracle’s own conference – was not an exception to this rule and a look at the session agenda presented the usual suspects from the buzz words dictionary: cloud, microservices, reactive programming and IoT.
Some steps beside that mainstream I had the pleasure to be invited for giving a talk: „jQAssistant: Verify Your Design and Architecture“. One focus was to provide an introduction into the philosophy and functionality of the tool. But it was even more important to demonstrate modeling of architectural concepts in code structures, their representation in graphs and the definition of rules which are embedded in executable developer documentation written in Asciidoc. The direct feedback during and after the session was very positive, especially the last aspect created high interest as it shows how to get away from word documents or Wiki pages which by definition are always out-of-date.
Sadly I could only spend two full days at San Francisco. One of the evenings was reserved for a presentation at the local Graph Databases meetup group in San Francisco (thanks to the organizers!) where I focussed on exploring existing application structures and gathering individual metrics. Due to this time restrictions I missed the JavaOne keynote with the highly expected announcements regarding the future of Java EE. But it’s no longer a secret: Oracle gave a commitment to evolve the standard. Java EE 8 shall be released officially at the end of 2017 and it will bring some minor changes (e.g. Configuration) but also leave out some expected features (MVC). In the mean time the works on Java EE 9 will already be started – and as rumors already predicted – this will bring fundamental changes by proposing a reactive programming model. The time schedule for the release is very interesting: it is scheduled for 2018. Even an employee of Oracle told me that this is over-ambitious and not realistic. Those who followed how the specification process went on over the last years will agree to this opinion. But apparently Oracle wanted to send a clear signal regarding Java EE and this should have worked out.
Apart from this it could be observed that there’s currently a high focus on creating acceptance in the developer community for the upcoming Java 9. There were lots of sessions covering its new features (e.g. JShell) including the probably „hottest“ change: modularization with project Jigsaw and possible incompatibilities for the migration of existing applications. Stability and compatibility for future development were emphasized notably many times as well as the fact that until now never any officially supported functionality has ever been removed. With Java 9 a paradigm shift will be started: to enable modularization of the runtime environment six former API methods will no longer available and there will be more clean up in upcoming Java versions. This became very clear especially in an Q&A hour called „Meet the JDK architects“ with Mark Reinhold, John Rose and Brian Goetz. This session was one of my personal highlights because it provided lots of valuable information and was very entertaining at the same time because the people on the panel presented their answers in an entertaining way with much underlying irony. Driven by questions of developers it became clear which values are driving the develpment of the platform: stability and a measurable value-add for new features. Under this perspective things like ahead of time compilation or currying were marked „low priority“ while overhead reduction for thread handling is obviously one of the near time goals to support reactive programming models and their frameworks. The answer to the question for the „biggest regret“ in the history of Java was – no surprise – „Serialization“ including the statement that this has caused most of the security issues so far…
Last but not least I’d like to point out a quite interesting observation: in a time not so far away there were many speculations about the future of JavaFX. But a look at the agenda of JavaOne revealed a notable amount of sessions regarding this topic. This impression was supported by a panel discussion about RIA technologies where JavaFX was presented as a base for cross-platform development in the area of mobile devices.
jQAssistant: Verify Your Design and Architecture (PDF)