JavaOne 2012 Report Part 1
11 October 2012 3 comments
Reading time:
13 minutes
Word count:
2847
JavaOne 2012 Conference was last week, as I travel around Southern California, it seems like it happened yesterday. I write this blog initially in Monterey Bay, and then I finish it somewhere near Paso Robles, may be Los Angeles, probably. I have to say, that this year the JavaOne conference was a blast, and not just because I presented three times. Java has moved forward, following the tagline from the 2011 conference, “Moving Java Forward”. This year’s tag line is on the tee-shirt was “Make The Future Java”, indeed.
This is Elber, at one-time an actor, a creative artist, sculpture maker and also a technologist from Brazil. He created the illuminated fish head. I am not sure what type of fish it is by the way. Ask Elber when you see him!
The Gathering
Why do we all come to JavaOne? We travel hard to get here, because this is the premier league conference where people from the four corners of the Earth can meet up, discuss the latest trends, solve headaches, come with new solutions, get involved with the community, learn from one another, socialise and finally measure the exact state-of-the-art, the technology rampantly swirlingly around the Java Virtual Machine. The most important and obvious reasons are that Oracle, the stewards of the Java, host this mega conference and they are based in California, so this is their home event. If you will, it probably feels like a home match. I think many people forget about that last relative sentence.
[L] Van Riper, Google and [R] Stephen Colebourne, OpenGamma, both Java Champions, are chatting amongst themselves before the Strategy Keynote. Sitting behind them are Andres Ix-chel Ruiz and Andres Almiray [R-to-L]
I went out the JavaOne in order to find out what will happen to JavaFX from personally interest point of view and also to learn about the enterprise Java side, Java EE 7. I was pleasantly surprised to see a lot of Scala talks in the online content catalogue, although I did not go to many of them. Typesafe were featured predominantly.
Bundling JavaFX JAR
Why is jfxrt.jar
bundled as a JRE separate file, and not inside rt.jar
?
The answer is that the JavaFX is not official part of the Java SE 7 standard. The only way to be standard is to provide certification Java SE committee. Thus JavaFX, in the future, has to be submitted, by Oracle, to the Java Community Process as new Java Specification Request in order that other valid Java SE implementations such as IBM, OpenJDK and SAP can make their choices. Choose to include JavaFX or not.
JavaFX
The story of JavaFX continues onwards. For the desktop environments and operating systems, JavaFX is not cross platform. JavaFX 2.2 runs on Windows, Mac OS X and Linux. As far as I am concerned, Oracle kept their promise to make JavaFX viable on the desktop, they also include JavaFX now with JDK and JRE for Java 7 Update 6 and better.
Hasan Rivi, a vice president at Oracle, Enterprise Middleware Products and Java, announced in a keynote that JavaFX will be fully open sourced by the end of the year 2012. Rivi said, “On the FX front, on the client, again a lot of new capabilities in the release, we really think that it is at a point now, we continue the process on open sourcing FX .. we will finish all components of FX by the end of the year. And we dearly like to invite the community to actively participate with us in taking FX forward”. The Sunday keynote were updates around products Java SE, Java EE and Java ME, you can watch it here. You might remember a couple of years ago, Stephen Chin, originally petitioned for JavaFX being open sourced fully. Ironically, Stephen Chin, is now a JavaFX ambassador for Oracle, and his wish is coming true. The code bundles will appear shortly in OpenJDK project dedicated to JavaFX.
Other folk were expecting that JavaFX would be ported to Android or other smartphone devices, and therefore expressed disappointment that this target was not announced at the conference. Oracle did say that they had already demonstrated some of the technical possibility of running JavaFX on devices to important corporations recently, however the take-up and the follow-through had been poor. It is hoped that open sourcing of JavaFX will produce the extra impetus to push the framework and architecture to mobile and embedded devices.
Personally, I believe we are close to getting a critical turning point. We need just one viable, fun and creative JavaFX desktop application that tips the below, which has the x-factor, with amazing vision and has been put together with talent and skill, using the best user interface design patterns, which provides the compelling reason, “Why are we not porting this existing and excellent JavaFX and Java application to a tablet device?”.
The open sourcing premise of JavaFX is promising, because it should allow third parties to jump in to the source code and add features to the platform that Oracle have not yet decided on? ( support for accelerometry, magnetometry, geo-location and photo cameras. I think it would be wise to check that Oracle have not yet invented any of these wheels internally first? However, history has shown that business does not prefer to wait for anybody, especially when they think that they can make money from the idea by doing it first.)
The Kiosk that Jasper Potts built to demonstrate JavaFX running on an embedded device. The application is the content catalog for entire JavaOne conference.
Jasper Pott’s embedded JavaFX console side view
Oracle did announce JavaFX for Linux as a developer preview, JavaFX for Linux / Embedded ARM devices, and SceneBuilder version 1.1. Oracle is focused on their effort on embedded devices, which are always-on electronic kiosk, terminal, point-of-sole and monitoring domains. In fact, Oracle organised a parallel and separate conference called JavaOne Embedded, which ran on the Wednesday and Thursday, aimed for business managers and decision makers.
As if it to prove this point, Jasper Potts and Richard Bair, created four hand-made production kiosks, in a month long skunkworks and proof-of-concept project. The kiosks were displaying the entire JavaOne Content Catalogue as a JavaFX application running on Java SE Embedded on an embedded device. The LCD screens were multi-touch allowing the conference goers to log-in and plan their schedule touch UI. The kiosk were placed at certain points in the JavaOne complex, the Hilton, Parc 55 and Nikko hotels. As usual with embedded devices, the technical capabilities of the hardware was limited by the amount of available memory, the CPU speed, the number of cores, and the number of threads that could be run simultaneously. Jasper explained that there were even limits on the number of instructions that could be sent from the CPU to the GPU in order to maintain the illusion of performance through user responsiveness. Sending image buffer frames from CPU to GPU and back could be expensive if thought and effort are naively implemented. Porting JavaFX 2.2 to Java Embedded SE over the past months of was a humbling task, therefore it revealed many bugs and refactorings that were solved, which in turn benefitted to the JavaFX desktop product. This previous fact was revealed by Richard Bair in a hallway conversation. The penny should be dropping by now as you are reading this blog.
In case, you did know it already, JavaFX 2.2 has some great features in current edition. There is Canvas support. You can program graphics like HTML5, the Canvas API looks quite familiar. With Canvas in JavaFX, you get the ability to instantiate a writable image buffer with a fixed resolution associated with a Java 2D graphics context. Suddenly, you can develop interesting pixel rendering effects in, some might say, traditional computer graphic programming mode. There is also Pixel image buffer I/O support, where utility classes PixelReader
and PixelWriter
provide high performance access to reading and writing pixels.
JavaFX 2.2 already has JavaScript support, namely:
// Java class DataSource { public List getCustomers(); } // JavaScript JSObject window = (JSObject)webEngine.executeScript("window") window.setMember("ds", new DataSource() );
JavaFX Maven Integration Niggles
Due to licensing concerns, it is not yet possible to redistribute the jfxrt.jar
in to a third-party Apache Maven repository ( https://repo.maven.apache.org/maven2
or https://uk.maven.org/maven2
). Therefore in Maven, Gradle or another build tool you need to explicit link to the JavaFX SDK.
JavaFX relies on native libraries in order to tap in to the underlying operating system’s graphics and media interfaces. These are guaranteed to be different for Linux, Windows and Mac OS X, and the issue is that the JavaFX needs to load one of these libraries dynamically at runtime. Bundling static link to jfxrt.jar
is not enough, because the NativeLibLoader
class inside of it, must resolve and load a platform specific native library. Therefore it prevents a deployment headache as well as a dependency headache. How do organise jfxrt.jar
and decide on the proper Maven Group, Artifact and Version coordinates.
JavaFX will have amazing 3D capabilities. Attendees of the strategy keynote were treated to demonstration of a shipping container terminal system application, which was using an early alpha version of JavaFX 3D API. This was a demo from Navis Corporation [Arvinder Brar] in collaboration Canoo [Dierk Koenig]. You can also watch this presentation yourself on line CON4853 – JavaFX for Business: Monitoring a Container Terminal. It would be appear the JavaFX 3D will ship with meshes, textures and of course polyhedra. You can also see Nandini Ramini in the Strategy Keynote. Canoo also announced an open source project about their interesting collaboration project Dolphin.
JavaFX 3D will have moving cameras, because they are now going to be treated as like javafx.scene.Node
types. I can image translating and rotating a camera through 3D space, but scaling and shearing it. What the does mean? Scaling a camera could be zooming in and out , shrinking and enlarging the view pyramid. Shearing a camera in mathematic 3D transformation, I believe, would be just weird. Actually, I can imagine a sci-fi effect with lots of randomly placed stars [points] in 3D space. Yes I very am excited about the 3D possibilites for the next JavaFX version. I wonder personally, if I could simulate Hyperspace with it, but perhaps it involved non-affine transformations, a non-linear concept anyway ;-).
The next version of JavaFX jumps from 3.0 to 8.0 in order to match the upcoming Java SE 8 release. I wholeheartedly agreed about this version jump so that matching the Java numbers, and also because the JavaFX library jar is bundled with the JDK. In the future, JavaFX will be itself a module in Java 9, which is expected to implement modularisation (Project Jigsaw).
JavaFX 8.0 will have really great rich text support. Richard Bair showed slides in one his JavaFX presentations about the TextPane
and TextFlow
controls. Finally, we will be able write an Integrated Developer Editor (IDE) with syntax handling in a JavaFX. Moreover, the new text controls will be composable, support bi-directional languages like Arabic and Hebrew, both at the same time. The text more important will also wrap correctly and best of all, developer will be able to add generic shapes to the TextFlow component so that the rich text wraps around and aligns correctly.
To find out more, watch the JavaOne 2012 Keynote Highlights.
Brazilian are always in attendance at JavaOne USA. If you can’t beat them [for passion] then you might as well join them.
Java SE
Java SE 8 will have Lambda functions (JSR 335) long overdue for five years. Brian Goetz gave a talk on lambda functions, which I could not attend, of course, because of clashes [I am sure I will catch it again in Devoxx]. Lambda brings essential functional programming to the platform. Here is a word of caution here, the proposal does not introduce higher order functions, although they can be implemented in a library. Lambda functions will simply the event handling logic in JavaFX, and code will must more functional and readable.
Mark Reinhold explained his reasons again for deferring the Jigsaw project to 2015. Although the full implementation will be delayed, he mentioned at least four profiles. Each of these profiles builds extra functions into the other platform until the full version. Mark Reinhold explained in his session, which I did attend, how hard it has been to refactor and restructure the Java Runtime Environment. His major concern was testing and building a guaranteed implementation of module system that would work from version 1.0 with little flaw.
I believe he is correct in delaying Jigsaw to Java 9. Consider the flawed Apple iOS 6 map implementation that was released as a production code earlier this year. If Java Jigsaw were released as early and as buggy as the iOS 6 Maps then we would be crying, despairing and wondering how on earth we did not test, and test early. The profiles in Java SE are a great idea, in the Java EE land, we already have two, the WEB and FULL. It is a great compromise.
People are looking forward to the new Date Time API (JSR 310) and also improved Annotations on Types (JSR 308).
Oracle also announced the Sumatra project in OpenJDK, which looks to see how the Java Virtual Machine and HotSpot can take advantage of the abundance of cores in Graphical Processor Unit (GPU) chips, which are found in hardware accelerated graphics cards.
Sharat Chandler addresses the gathering of JUG Leader and Java Champions at the social event where he expressed his thanks to all of us.
Miscellany
Sharat Chandler is moving somewhere in the Oracle chain. I think it is polite to allow him announce his final destination, when he gets there. The title of Chairperson of the JavaOne Program Committee passed from Sharat Chandler to Stephen Chin on the Thursday community keynote. This was a surprise to all of us. None of the Java Champions and / or JUG Leader knew this was happing. Stephen kept his secret under wraps.
I believe Stephen taking over the organisation of JavaOne will be asset to the collective, because he is very familiar with the community of user groups around the world. He travels to the conference, does a great job presenting and always involves the audience. Stephen starts his new role with the Nighthacking Tour of Europe.
Sharat Chandler also did a great job taking over the running of JavaOne in the past two years. He did listen to the concerns of the community, and push to support the leaders, the attendees and made JavaOne at least viable. One of the things he did, was reduce the markitecture of the conference. There were two days of key notes, and the rest of the conference with given over to the technical sessions. So I want to congratulations on both Sharat and Stephen.
This is the end of part one. In part two I will cover the Java Enterprise part of the conference, in particular “Moving Java EE to Cloud” or not, as it proved to be, provide more analysis and perspectives on Java and miscellany.
See you in part two
Los Angeles, October 2012
+PP+
[L] Sharat Chandler’s landyard compared to mine [R], spot the difference, no prizes.
Stephen Chin, on stage, on the Community Keynote, has just become the Chairperson of Program Committee for all future JavaOne events from 2012 onwards.
[L] James Gosling, the Father of Java, makes a welcome return to JavaOne after three year absence, promoting Liquid Robotics and Java working inside oceanographical science.
On the way to and from from the Oracle Appreciation Event, I hung out with the Brazilian contingent at JavaOne. We were on our way back to the Hilton SF, when this photo was taken.
[L] Simon Ritter is on demo kiosk duty explaining his Maker-make passion with JavaFX and strange and wonderful hardware to an attendee.
This is me just moments before my first solo talk on Wednesday, on Contemporary User Interface Design Patterns in JavaFX 2.2. I was nervous as hell. Well you always need a little bit fear to give you a kick of adrenalin.
Gerrit Grunwald is talking about writing JavaFX custom controls and all about the cool looking gauges that he has been implementing.
[L] Bruno Souza of the Brazilian SouJava user group. He is holding the special JCP award for his user group’s involvement.
Book authors should stick together, although at the time of writing [Oct 2012] and I am at the start of the journey of being a writer. [L] Paul Anderson and [M] Gail Anderson authors of Essential JavaFX (2009)
[L] Stephen Chin, my partner in crime in the JavaFX Developer Guide for JavaOne 2012. This photo was taken at the annual desktop lunch that Stephen and Jonathan Giles organising for the conference.
Centre stage, Chairperson of the Java Community Process, Patrick Curran, shares his delight at the JCP evening
+PP+