Skip to main content

Java One From Far Away

Posted by cayhorstmann on September 29, 2010 at 11:30 PM PDT

I have been at JavaOne since 1996, its inaugural year. In 1996, JavaOne was
colocated with the Software Development conference, which has since fallen on
hard times and vanished. But at the time, half of the exhibitors were from SD,
and the other half from JavaOne. Weirdly enough, the JavaOne booths were all
yellow with a bit of red and blue, so it looked as if the SD half of the
exhibit hall represented the free world and the Java One half a totalitarian
regime. This year, JavaOne is again colocated with another conference, Oracle
OpenWorld, but I am on sabbatical in Vietnam, so I didn't get to enjoy the
show.

However, through the miracle of the blogosphere, it is amazing how much
information one can get without actually being present. In fact, maybe it's
helpful to be outside the reality distortion field. Here is my take from
afar.

1. As href="http://weblogs.java.net/blog/cayhorstmann/archive/2010/09/09/puny-java-7-isnt-end-world">already
hinted, Java SE 7 will have href="http://openjdk.java.net/projects/jdk7/features/">modest improvements
and be delivered in 2011. Java SE 8 is promised for 2012.

2. I didn't hear anything about Java EE 7, but that's ok—the EE 6 app
servers are just rolling out.

3. There were encouraging words about commitment to GlassFish and
NetBeans.

3. The big surprise announcement is Java FX 2.0. A release is promised in
2011 with an ambitious roadmap. There
will be Java bindings to the API, which means you no longer have to use FX
Script. Now that's something that I have asked for ever since I first heard of
Java FX. (By the way, FX Script will not be developed further.) Also promised
are a rewrite of the media stack, a new accelerated graphics stack called Prism
that works outside the AWT, and a mechanism for rendering a scenegraph to HTML
5. All of this has been touted as “Swing 2.0”.

I am baffled by this, in particular, the timeline. We were told that it
would take until
mid-2012
to deliver the originally planned Java SE 7. Fair enough, but how
can Java FX 2.0, which seems at least as ambitious, come out so much more
quickly? Someone still has to work out some pretty basic details, such as how
href="http://today.java.net/article/2009/05/25/hacking-javafx-binding">binding
is going to be done in a Java API. Multimedia has not been a strong point of
Java FX in the past; see for example href="http://javafxplace.blogspot.com/2010/06/javafx-and-webm-on-linux.html">this
blog to get a feel for some of the issues. Prism sounds great, but it's not
something for which I could find any public information. And I don't begin to
understand the HTML 5 angle. Every time that I hear “rendering for
multiple display technologies", I run for the hills. Remember Java FX Mobile?
(By the way, that's now dead too.)

I very much want to see a modern client-side library for Java, and if href="http://amyfowlersblog.wordpress.com/2010/09/21/a-heartfelt-ramble-on-swing-javafx/">Amy
Fowler says that Swing isn't going to cut it, I'll look forward to Java FX
2.0. Provided, of course, it is available under GPL and, at least as of SE 8, a
part of the platform. But I am not getting the warm and fuzzy feeling that this
is going to happen without pain, or by 2011.

4. I was equally baffled by the href="http://www.theregister.co.uk/2010/09/26/mobile_java_oracle/">mobile
announcements. The quote that stuck in my mind was from Thomas Kurian:
“I would not underestimate our capability [of] delivering a new Java
platform [in this space]”.

Ok, count me among the under-estimators.

Yes, I get the point that there are 10x more feature phones than smart
phones. I have one of them. But I am not running a single Java app on it. I
wouldn't even know how to get one. (I tried once and was hit with some
outrageous data charge—thanks, Verizon.)

A while ago, I used a Blackberry. It had a bunch of fine apps, but those
weren't Java ME. Ok, not true. There was one Java ME app that I ran—a
terminal emulator. Very mainstream...

Right now, I use an Android. It has a bunch of great apps, but they aren't
Java ME either. In fact, I understand that Oracle has issues with that
platform...

I realize that elsewhere in the world, people do use Java ME apps, but it
really seems like fighting yesterday's battle. And if I did want to fight
yesterday's battle, I would promise to give feature phones the good 90% of what
smartphone users enjoy—apps that integrate with the calendar, messaging,
maps, and media on their phone (and, for that matter, Java-based calendar,
messaging, mapping, and media for those phones that don't have them—like
that feature phone that I no longer use since I got the Android.) I don't see
how talking about WebKit, a Java-to-JavaScript bridge, and LWUIT is going to
keep mobile Java alive. (And no, I didn't understand where WebKit comes into
the picture.)

So, here is what I conclude, from my vantage point as the Sage of Saigon:

  • Java SE 7 and 8 will be delivered pretty much as planned
  • GlassFish and NetBeans will stay viable choices for developers, at least
    in the near term
  • Something called Java FX 2.0 will materialize, but it will be late, not
    have all promised features, and not be Swing 2.0. Eventually some viable
    Swing replacement will emerge from the good parts. In the meantime, Swing
    will be left to wither on the vine, and it will be a challenging time for
    Java desktop developers until the dust settles.
  • Java ME will continue to lag behind developer expectations

If I am wrong, I will really need to attend Java One 2011 to get a better
reading of what is happening.

Related Topics >>

Comments

On JavaFX 2.0's timeline...

It's really not too tight, if you've been watching JavaFX. The new Prism stack is already available (in early access quality) since v1.3.0. The new media stack is apparently on the works for a long time (I remember seeing references to that in some very old JIRAs). This media stack btw is based on GStreamer, so it's not like Oracle is writing components like video codecs. All HTML5 stuff will be based on WebKit. Finally, even for the latest U-turns, they've been working on it for a few months before this announcement.

On Java ME: Last july, in the JVM Language Summit, there was a session over Oracle's new hybrid Java+Javascript VM, which if I understand correctly is an evolution of HotSpot CLDC. So they've ben working on that for some time too. This is a foundation of the new Java ME plans.

For all the desktop-only screens of your life?

I'd be interested to know where JavaME sits on your chart of failed APIs that need to be kicked out. How much of these JavaME changes are a stopgap measure? Isn't the real deal they really want a new slim mobile profile Jigsaw/JavaFX combination to replace JavaME. But as that's seriously delayed and JavaFX adoption unproven, they need to keep things ticking over on the few JavaME licensees they've managed to keep. What serious future does JavaME face? for me its got the same dark legacy cloud hanging over it Swing has.

After looking at these plans we still can't get a JVM on our smartphones & tablets, its doubtful even if we had a replacement JDK8 mobile JavaFX profile that Apple or Google would allow such an alternative platform on their devices. Being technically capable is all very nice, but are Oracle politically as capable? (not done a great job of getting Google on side). There's no good way to spin falling levels of Java adoption. To what extent will Oracle go to fix this? push OEMs to pre-install the Java Runtime again? could be expect to see an Oracle Phone at some point? Will we have to wait several years until JDK8 is ready before we get any kind of answer?