Skip to main content

Doomsday Clock

Posted by editor on July 23, 2007 at 7:13 AM PDT

Java to kill Flash, or Ajax to kill both, by next year?

Joshua Marinacci is sounding very re-energized about client Java, as he describes in his blog Java FX updated, and a visit to the future of client Java:

I've spent the last week in the bay area at secret clandestine meetings secretly planning the amazing top secret future of client Java and Java FX! Okay, that makes an endless week of meetings sound a lot more interesting than it really is, but there's some truth to it. We promised a lot of things at JavaOne, from designer tools to the consumer release of the JRE, and based on what I've seen in the last week I can say that we are really making all of this stuff happen. In fact, I'm going to come out here and make a bold (and not approved by my employer) statement:

2008 will be the year that client Java starts taking market share from Flash.

There, I said it. By JavaOne we will have completely re-energized client Java. And I mean client Java, not just desktop Java. Everything will be faster, prettier, easier to use, and easier to deploy. We will be better in the browser. We will be better on the desktop. We will be better on the phones. Existing technologies are being updated and new technologies will see their debut at JavaOne, if not earlier.

Wow. Strong words, and I don't think Josh would risk putting them out there if he didn't have something to back them up (even if he can't tell us what that is yet).

To be fair, though, client-side Java is facing two prominent rivals -- Flash and Ajax -- and they're not exactly standing still. Flash is the obvious rival now, as the Java community is generally on very good terms with Ajax (maybe because most of our community is on the server side and is thus somewhat client-agnostic). But Ajax is still a significant threat to client-side Java: I noticed that the Mac blog Daring Fireball recently cited an opinion piece from Roughly Drafted called The iPhone Threat to Adobe, Microsoft, Sun, Real, BREW, Symbian, which claims that the iPhone's adoption of a full-blown browser and its ability to handle JavaScript-heavy Ajax web apps is a strategic weapon to keep Flash Mobile from gaining ground. As a bit of collateral damage, since the iPhone doesn't support Java ME, its popularity could also hurt the "run everywhere" side of Java's WORA promise. Moreover, the article argues that if iPhone starts a trend of putting a full-blown, JavaScript-ready, Ajax-supporting browser on all phones, then Java ME will lose ground in the mobile space. The Manageability blog also wonders about this scenario, backtracking on an early prediction that ME would solidify its position as the standard as a result of Google Maps legitimizing ME.

Of course, there's a lot of this "there can only be one" rhetoric flying around. Some sensible types reject this so-called "Highlander Theory" because it's rare for one size to truly fit all. While Ajax support on the phone would keep providers from having to develop mobile-only clients with technology like ME, it's a platform that's totally unsuitable for a lot of popular applications. Check out the ME game collection on your phone: do you really want someone to try to write "Bejeweled" -- or "Galaga", for Jove's sake -- as a JavaScript web app? And notice that Apple didn't use Ajax for its Mail, Maps, and other productivity apps on the iPhone? They recognize the value of a full-blown client GUI platform too.

So user-facing Java, on the desktop and the device, is finally poised to start doing some really great things? Well, that's good news, because the competition is not standing still, and Java will have to prove its value in 2008 against the capabilities of Flash and Ajax with another year of development and evolution under their belts too.

In other news, today kicks off the O'Reilly Open Source convention, and Arun Gupta has a look at jMaki and GlassFish @ OSCON in today's Weblogs. "Sun Microsystems is a platinum sponsor of OSCON 2007 (Jul 23-27, Portland, OR). There are tutorials, sessions, bofs, expo hall and other events. Sun's continued commitment to Open Source is reflected in its leadership and key contributions to the many projects including OpenSolaris,, GNOME, Grid Engine,, Jini, JXTA, GlassFish, NetBeans, and Mozilla."

Terrence Barr decries carrier-imposed limits on ME functionality in
Open technologies need open access.
"To make a technology truly useful, accessible, adaptable, and innovative in a way that impacts our lives profoundly there are two fundamental prerequisites: First, the technology itself (the specifications and designs) must be open and, second, access to the use of that technology must be open (accessible in a non-discriminatory manner)."

In Java Today,
the newly-announced OpenJFX Compiler Project is an OpenJFX incubator project to create a JavaFX compiler to translate JavaFX scripts into JVM class files (bytecode). Currently, the compiler is still in the early stages of its design and there is no compiler available yet. As Tom Ball explains in his blog, The Birth of the JavaFX Script Compiler, "our team wants to open not just its source, but the design and development of the compiler itself. We are also asking for feedback on the JavaFX Script language to make it fully specified and compilable."

The latest edition, issue 130, of the JavaTools Community Newsletter is out, with tool news from around the web, announcements of new projects in the community and one graduation (SecureJSH), and a tooltip about the XML Developer Toolbar for XML work in Firefox.

Café Au Lait's Elliotte Rusty Harold has a go at clarifying Java's checked and unchecked exceptions by thinking of them as Internal and External Exceptions: "Perhaps the continuing confusion over the difference between checked and runtime exceptions in Java is because we haven't named them properly. Most texts and teachers, including myself, have traditionally focused on how and when you handle the exceptions (compile time or runtime) rather than on what causes each. I propose a modification, not in code, but in terminology and teaching. Specifically I think we should should start calling checked exceptions "external exceptions" and runtime exceptions "internal exceptions"."

This week's Spotlight is on Project Tango, which develops and evolves the codebase for Web Services Interoperability Technologies (WSIT) that enable interoperability between the Java platform and Windows Communication Foundation (WCF) (aka Indigo). Project Tango's WSIT tecnology is bundled inside GlassFish v2. It is also possible to download a more recent version of WSIT and install into GlassFish or Tomcat. Project Tango uses JAX-WS and JAXB as a foundation upon which to build plugins to provide web services features such as bootstrapping communication, optimizing communication, reliable messaging, atomic transactions, security and trust.

In today's Forums,
mohammadwrk kicks off an interesting discussion with a straightforward question in
JPA - why persist and merge, why not a sigle save.
"I don't understand why we do need two different methods for persisting and merging! Shouldn't persistence context be smart enough to distinguish between New, Manged and Detached entities? In that case all we need would be a Save method to persist/update a New/Managed/Detached entity. Does anybody know what the rational is behind having two separate methods vs. one?"

gcruscoe is looking for an ME runtime in
Re: MR2 fails to run on Nokia 770.
"Hey, I'm sorry to chime in here, but I have been trying to find some information on getting Java on my Nokia 770, and this is the closest thing I have found to information on it. Does it run on the 770? Is there a download that I should use for it?"

jnekoonam has a seemingly simple servlet request in
java web server log file.
"I was wondering if anyone can show me a simple log file recorder for a simple java web server. The log file should simply show the ip address of the client (which is reported from the client's browser) and the page that the client requested, date and time of the request. By calling this log file from your browser, the webserver should simply show these data in either html format or txt format."

Current and upcoming Java

Registered users can submit event listings for the href=""> Events Page using our href="">events submission form.
All submissions go through an editorial review before being posted to the

Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed
. Also, once this page is no longer featured as the
front page of it will be
archived along with other past issues in the href=""> Archive.

Java to kill Flash, or Ajax to kill both, by next year?