Skip to main content

This Town Ain't Big Enough for the Both of Us

Posted by editor on June 27, 2008 at 8:12 AM PDT

DHTML or Applets? Or both?

The big story coming out of Apple's choice to leave both Flash and Java out of the iPhone is not the corporate intrigues with Adobe or Steve Jobs' flippant comment that Java is a "ball and chain", but rather the company's apparent embrace of highly dynamic webapps, chock-ful of JavaScript and CSS trickery, as their preferred form of RIA delivery. There's a choice to be made in RIAs, and they've picked a side. We've also seen Google place itself squarely in the browser-technologies camp, and it was their embrace of these technologies in GMail and Google Maps that legitimized Ajax for a lot of people.

On Artima, Frank Somers looks at the philosophies, politics, and technologies behind the competition for the net-connected desktop in Rich Internet Applications: VM Runtimes or Browser Standards?. "A great deal of commentary followed Apple's announcement that it would use the Sproutcore JavaScript framework for its upcoming online offerings. Most of the debate centers around the question of whether a virtual machine-based environment or reliance on browser standards are preferable when developing rich Web apps."

This has been an ongoing competition for years. On the one hand, you've had a lot of people expecting that sooner or later, the browser-only stack of JavaScript/DOM/CSS/Ajax would eventually reach its limits, and fall down for reasons of compatibility, performance, or complexity. And, once that approach is fully discredited, the way to manage the need for high interactivity would be to put a VM into the browser: Java, Flash, etc. But on the other hand, some of us have been waiting for the Ajax stack to fall for years and it hasn't happened yet. This tower of kludgery blunders on, despite our oh-so-smart insistence that it must surely collapse soon. Indeed, while JavaScript may be the ugliest of hacks, CSS has continued to evolve and offers a surprising amount of functionality; I was stunned to see that WebKit's CSS supports 3D transformations. So maybe expecting Ajax to die is naive? Maybe the rise of the VM-based RIA is not inevitable?

Now what does this mean for Java? Specifically JavaFX? In a sense, JavaFX playing both sides of this street. Obviously, JavaFX is a VM-based option, and we'll have to see what kinds of delivery options are made available for JavaFX applications (applets, web start, double-clickables, etc.). But since JavaFX uses WebKit as its rendering engine -- the same code that Apple is relying on for Safari on the Mac, Windows, and iPhone, and their webapp-centric vision of the future -- doesn't it seem like JavaFX has that option covered too?

In light of this, the latest Poll asks
"What RIA platform do you prefer?" Cast your vote on the front page, then visit the results page for current discussion and tallies.

And no, JavaFX isn't a choice, because it hasn't been released yet (and therefore is unlikely to be anyone's practical "favorite"), and it's not clear how JavaFX deploys as an RIA (is it an applet or a stand-alone app, or what?), but if you'd like to vote for it as "something else" and provide a follow-up comment, please do.

David Herron addresses the RIA topic du jour, musing On the evolution of the Java plugin in today's Weblogs.
"The Java Applet was the first of the RIA platforms, long before Flash became the king of RIA, long before Silverlight was a sparkle in anybody's eye, long before DHTML and AJAX became suitable as a rich internet applications platform, the Java applet was there."

Evan Summers follows up with
A short history of Web UI programming.
"We see that markup and Javascript is the web UI's lingua franca for the vast majority of web developers - past, present and probably future. We declare the UI view using HTML or XML, and use Javascript to handle the UI events and manipulate the view. Web 1.0, XUL, Ajax, OpenLaszlo, Flex, Silverlight - they all play like this, probably because browsers, Javascript and web developers have grown up together."

Where did all the projects go? Sonya Barry explains some
"baby steps to improve - cleaning up and reorganizing the general community."

Also in Java Today,
the NetBeans Community Portal has a brand new look! All the information you need to contribute to the NetBeans codebase, to develop your projects with the NetBeans IDE & Platform, and to engage with the NetBeans community can now be found on one easy-to-navigate page! The NetBeans Community Portal is your gateway for participating in the NetBeans Project and growing the community.

JSR-305, led by FindBugs' creator Bill Pugh, is looking to create both a standard set of annotations that analysis tools can use, and a mechanism to allow developers to add additional annotations as they need to. The current proposal includes annotations for nullness, sign, language, and threading amongst others. The InfoQ article JSR-305: Annotations for Software Defect Detection looks at some of the annotations being considered for inclusion in this JSR.

The latest JavaOne Community Corner Podcast is
j1-2k8-mtT16: Social Network Application Platform by Bobby Bissett and Manveen Kaur. No description was provided for this mini-talk.

In today's Forums,
Chris Campbell addresses the practicality of the Scenario API in
Re: Future of the Project Scene Graph.
"The primary focus when designing Scenario was to provide a medium-level implementation layer for the JavaFX APIs. The fact that a usable API (the Scenario API for scene graph, animation, and effects) fell out of that design was fortunate, but not our first priority. To be fair, we did try whenever possible to make the API user friendly so that existing Swing and Java2D developers would have something to use, since the "official" JavaFX APIs were still being designed and baked and were not yet ready for public consumption. However, I strongly feel that most of the Scenario API is too low-level for most developers."

rgibson_2 wonders about the versioning of
OEM Java distributions.
"We have a whole bunch of machines with Java pre-installed. The version number is 1.6.0-oem, which, according to the rules of the JNLP spec (Appendix A) is a later version than 1.6.0_10, is that right? Does that mean that if we want to always use the latest and greatest JRE for our applets and Web Start apps we need to uninstall the OEM version? Anybody come across this yet?"

mbs3 wants to know if there are
Existing ways to store java.util.Preferences in a JDBC backend?
"I'm curious if anyone has seen any pre-existing libraries that provide a JDBC backend for storing preferences from java.util.Preferences? I realize this isn't *really* a JDNC question, but it does actually affect user experience to have preferences stored locally or remotely, and what I'm really looking for is desktop application preferences in a semi-distributed environment. Should I be approaching this differently?"

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.

DHTML or Applets? Or both?