Java's 'Steve Jobs' moment in 2012?
OpenJDK: Right ideas, wrong timing
Java media star?
The notable exception is JavaFX 2.0. From the dark days of JavaFX 1.0, with its weirdo scripting language and inoperability with Swing, the team appears to have completely turned the project around. JavaFXScript is gone (it survives on life support as a separate, open-source project which I expect will dwindle away). Instead the UI is controlled either by “real” Java code or via the new FXML declarative language. Flex/MXML developers should feel right at home. JavaFX 2.0 also boasts CSS support for skinning and layout of UI controls, which should finally allow web designers to get involved with a Java UI and make it look presentable.
Significantly, Swing components can now be placed inside a JavaFX Scene Graph. I do wonder if this will lead to a new breed of mixed component problems like the “heavyweight vs lightweight” issues that plagued the early days of AWT against Swing; however it demonstrates that the team is sounding all the right notes and finally recognised that there’s a lot of Swing code out there, still live, still being developed. Also, they have now provided a viable migration path for projects which may have thousands of lines of complex, business-specific UI model code that can’t just be chucked away.
Oracle was keen to point out the cross-platform nature of JavaFX, but there was no mention in the main arena of targeting Apple’s iOS or the contentious Android from Google. Multiplatform it may be, but without these key platforms, JavaFX is just not that relevant. Lucky, then, that – almost lost among the 50 or so JavaFX 2.0 sessions during JavaOne – Oracle’s senior director of software development and former Sun JavaFX team member Nandini Ramani demoed an early build of JavaFX running on an iPad 2 and a Galaxy Tab 10.1 running Android 3.1. To conform to Apple’s licensing restrictions, the iOS version links in the Java VM as part of the app, instead of launching the app inside the VM.
Thinking outside the coal bunker
Clearly there are still hurdles to overcome. For example, the demonstration used Java ME instead of “real” Java and relied on unreleased enhancements. However, the implications of this development are so huge that this – not roadmap delays – should really have been the “one last thing” in Reinhold’s keynote. The sooner that Oracle can make this project happen, the quicker it can catch up with the already successful Flex Mobile. The fact uncertainty now surrounds the future of Flex, the timing could be even better for Oracle.
The hush-hush iOS demo came as Oracle preps Project Avatar, an alternative approach to running Java on iOS devices – using HTML5 and Java ME. It shows there is a potentially glorious future in mobile outside what has been achieved in Sun’s coal bunker of the enterprise.
While Java SE churns and gets pushed back, the new initiatives do at least show OpenJDK is reinvigorating the Java space. The project has picked up speed just a little too late for the fifth anniversary of the open-sourcing of Java, but if these promised developments really do come together then that means next year should see a series of “one last things” missing from 2011. ®