Skip to main content

Always Know Where You Are

Posted by editor on May 28, 2007 at 3:12 AM PDT

Anything to learn from JavaFX Mobile's early critics?

A friend pointed out a blog about JavaFX Mobile and the Java-based phone to run it: Sun Tries to Jump on iPhone Bandwagon with jPhone. Posted just after JavaOne, it's highly dismissive of the prospects of delivering a successful product in the mobile space and competing with Apple's iPhone. The site, Roughly Drafted, is a Mac evangelist online magazine with a wide-ranging view of the computer industry and an overwhelming inclination to smack down any who would criticize or compete with Apple. In their eagerness to slam Sun in support of Apple, they've uncorked a few claims with an utterly Dvorak-ian detachment from reality, like this one:

Of course, there's also the fact that Sun has offered its Java 2 Mobile Edition for years, a mobile platform that has done little to advance the state of the art in cell phones and really nothing for consumers at all.

Despite its promise to enable 'write once, run everywhere' mobile software for all phones, J2ME is really better described as 'write once, debug everywhere, sell nowhere.'

While ME developers do complain bitterly about inconsistent implementation across devices, the claim that the technology has done "nothing for consumers" is ridiculous bordering on obscene. Without ME, how would mobile applications be developed? As native binaries for each model? With Brew? The walled gardens of mobile providers may be pretty restrictive, but I can still get far more (and more interesting) games and other applications for my two-year-old ME phone than I can get, say, games for a video iPod (Apple offers only a sorry 14 titles after nine months in the market).

So, given that the author's affection for Apple has seemingly gotten the best of him, is there anything for the Java crowd to learn from this piece? I do think his core argument is actually pretty good, once he calms down and get to it. Using a somewhat tortured analogy of competition among sandwich shops, he notes that the iPhone enjoys an integrated system of proven pieces -- Apple's hardware manufacturing and software development prowess, its reputation, its retail stores for sales and support, its iTunes Store for media delivery, etc. By comparison, JavaFX Mobile is simply a mobile application development environment, in search of device vendors who can make use of it. By analogy, Apple is a chain of sandwich shops, while JavaFX Mobile is a single pickle that Sun hopes others will build a sandwich chain around.

This is, at least, an interesting point in understanding the context of JavaFX development. For the platform to succeed, we need to see where it will serve the self-interest of other relevant parties: device makers, network providers, etc., unless some or all of those parties are going to be Sun itself. JavaFX Mobile has the advantage of being developed by people who know what they're doing -- Roughly Drafted's insults aside, ME is on billions of devices because it works -- and will eventually enjoy the advantage of being open-source. Maybe that's enough to succeed, maybe it's not. The key will be in providing real value to outside parties, not just good demos for the home crowd.

That's why I read stuff like Roughly Drafted -- when we can win over the guys who currently don't like us, then we'll be unstoppable.

We continue the JavaFX theme in the Java Today section.
Obligatory keynote demos notwithstanding, many conference attendees were baffled as to just what JavaFX meant. in a six-minute audio interview with Artima entitled Jacob Lehrbaum Explains JavaFX Mobile, Sun's client systems group product line manager describes the mobile version of JavaFX, and provides the big picture of where JavaFX fits in with other client-side Java technologies.

The SDN has posted an interview with JavaOne Rock Star Josh Bloch. In it, the Java Puzzlers co-author discusses promoting the use of Java at Google, the open-sourcing of the Java platform, attitudes and misconceptions about Java, his favorite API's, and his thoughts on the future of Java and other languages that might run on the JVM.

A JavaLobby discussion asks Is There a Consensus on Fixing Generics for Java 7? "Seeing as closures and properties are still quite disputed, I was wondering whether there was any consensus on introducing Reified Generics for Java7 instead."

Bhakti Mehta has some advice for Obtaining and analyzing thread dumps in today's Weblogs. "Most of run into bugs where tests 'hang'. Here are some nice tools and tips I found to obtain and analyze thread dumps."

Vivek Pandey looks at
How to deal with unresolved xs:schema references in WSDL.
"There are some WSDLs with unresolved xs:schema references, that is no import for the xs:schema entity in the WSDL or associated schema. You can deal with such WSDLs with wsimport. Here is how..."

How many threads do your system scale per java process? Claudio Miranda writes:
"I developed a performance utility to test the scalability of threads per java process. Test it and see how many threads you system can afford to create and run concurrently."

This week's Spotlight is on Project Wonderland. Featured prominently at JavaOne 2007, Wonderland is a 3D scene manager for creating collaborative virtual worlds. Within those worlds, users can communicate with high-fidelity, immersive audio and can share live applications such as web browsers, OpenOffice documents, and games. A number of Wonderland video demos and interviews are available in the project's News section.

In today's Forums,
kdubb wants to know
How to recreate session instead of NoSuchEJBException.
"I have an ejb3 web application built on Glassfish V2. When any piece of code in a session ejb throws an exception the session ejb instance is deleted (i guess this is according to spec.). How can I cause the session ejb instance to be retained or recreated when an exception that would kill it is thrown? The reason I want this to happen is that for my application the session ejb really just provides convenience to the user and the data stored there is not critical and I would rather have the end user see a "reset" of the web interface rather than the resultant error page from a NoSuchEJBException."

steevcoco has some thoughts on enums in
Re: Is abstract enum good for Java 7?
"My feeling on this was that enums with a very large number of elements that all may have unique behaviors might be a bad implementation. Such a thing might be better refactored. So maybe giving all enums the ability to grow indefinitely, and orthogonally is not the best. I definitely do wish generic constants were possible because I think it can be done both succinctly and it's appropriate too."

maajia needs some JXTA concepts clarified in the thread
Re: How to create a peerGroupService.
"I am new to jxta and tried to get trough the examples, but I find it very difficult to understand the Rendezvous-concept in total. In that Restaurant example you implemented the interface RendezvousListener and registered to the RendezvousService, but the method waitForRendezvousConnection is never called. Is that right? So, what is the meaning of the RendezvousService in this configuration?"

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.

Anything to learn from JavaFX Mobile's early critics?