Skip to main content


Posted by editor on February 26, 2009 at 8:28 AM PST

So one phone doesn't work like another... so what?

We've heard a lot of unhappiness over the years from the ME camp over fragmentation, loosely defined as the dissimilarity of implementations of ME specs and other differences between devices (screen size and color depth, input technologies, etc.), which make it difficult to write applications that run on all/most/some/two devices.

Some people, often handset makers, have argued that fragmentation is good, or at least that the complaining is an overreaction. Without the ability to make devices different, they say, there would be no innovation.

An even more extensive argument of this sort appears in today's forums. In a reply to a long-running thread, Re: Touchscreen Support, signal3 addresses a complaint about the seeming flexibility of the KVM spec, by saying that a more crossed-t, dotted-i world is unrealistic:

Why are there so many different behaviors on the world's myriad of phones?
Simply because it's a big world, and... not all vendors/developers create
products of equal quality. Remember, quality is a subjective and
philosophical notion so what someone thinks is good another may think is
bad. Personally I think that "variety is the spice of life" and I don't see
this as being a bad(tm) thing. Ultimately, the "invisible hand of the
market" should determine what is good over time, but... in the short term,
the market acts more like a popularity contest than an objective measure of

Are there too many non-mandatory options in the specification? Again, it
depends on how you define "too many". However, the intention and spirit of
the specifications is to be rigid where they need to be; flexible where they
are allowed. My opinion is that the specifications do a rather good job of
balancing the two... allowing vendors to optimize and customize things where
they can while at the same time insuring a high level of compatibility
between competing products.

signal3 then explains a story in his/her own application about working through different behaviors on different phones, saying that both behaviors make sense in context of making affordable small devices, and implying that it's up to the developer to care about, test, and fix this stuff. The author goes on to make the "fragmentation is good" case, and a lot better than it's usually made:

Anyway, it's easy to get frustrated by this stuff, but the alternative is
certainly more bleak. Consider it a lesser of two evils... in one case we
could have a perfectly rigid specification (in which the Java-ME platform
would degenerate into a product) or we could allow flexibility where it is
needed to insure that Java-ME remains a competitive platform. This way
different products can deliver the benefits that their intended users demand
(instead of what an arbitrary vendor may dictate). It's very important IMHO
to understand the differences between a platform and a product. Java-ME &
its configurations aren't really tangible products, they're platform

Do you agree? Are you willing to work through the incompatibilities for the sake of having an ME world with highly different devices that your app can run on? What are the alternatives? No variety, or writing for one device at a time? What do you think?

Also in today's Forums, mustberahul hopes to deploy a JavaFX app in a JSP, in Re: How to: JavaFX as Web Application. "Actually I have used sample Applications of JavaFx from NetBeans IDE and I have successfully executed it. Now My Problem is I want to use this JavaFx at Client Side. If I create a normal web application in NetBeans which consists of JSP and Servlet in that How can I use JavaFx ? . Please can you provide detailed description of using JavaFx in JSP . is it possible to use JavaFx in JSP ?"

zulu posts a
newbie question about Metro depoyment. "I am starting off with Metro web service stack and had some initial questions. In our dev environment we plan to use Tomcat/Glassfish but the final deployment will be on Websphere 6.1. My question is do I need to have the complete stack in place or can I pick only those jars from the Metro stack which are being used (essential ones). Also do I need to make these Metro specific libraries available as part of my application or are they available in the respective containers."

In Java Today,
The NetBeans team is pleased to announce the availability of NetBeans IDE 6.7 Milestone 2 (M2). New features include greater Maven integration, an "ergonomic IDE" performance improvement, enhanced self-diagnosis, SVG improvements in Mobility, and improvements to the profiler, C++ tools, and the Mac look and feel. Visit the download page to choose and download the NetBeans bundle that's right for you.

The newest novelty posted to the JFXStudio site is TweetBox, a cool Twitter client built in JavaFX. Creator blokmark writes, "for quite some time now, I have been "noodling" this Twitter client in JavaFX to teach myself JavaFX and really go way beyond hello world. I had to go through the painstaking process of migrating to many JavaFX preview SDK code to 1.0 code, but that also tought me a lot about the changes too." A Web Start version is available, as is source.

The latest edition, issue 191 of the JavaTools Community Newsletter is out, with a reminder about Duke's Choice Awards nominations, tool news from around the web, announcements of new projects in the community, and a Tool Tip on "Git: a new approach to version control".

The latest Java Mobility Podcast is
Java Mobility Podcast 72: Java ME SDK, in which Tomas Brandalik and David Pulkrabek talk about the new features in the Early Access release of the Java ME Software Developer Kit.

In today's Weblogs, Santiago Pericas-Geertsen links to a screencast on
Developing SGMP Connectors using JAX-RS. "Last week we announced the availability of version 1.1 of the Sun GlassFish Mobility Platform (SGMP), formerly known as Mobile Enterprise Platform (MEP). In the previous version, a connector could only be developed using the ECBO API; in this new version, a connector can also be developed using JAX-RS. The attached screencast shows how to develop a JAX-RS connector using Netbeans 6.5 and Maven. Next time we'll focus on how to deploy a JAX-RS connector."

Arun Gupta points out a
GlassFish setup for 120 programmers in University of Copenhagen. "Sidsel Jensen is a Sun Campus Ambassador at University of Copenhagen, Denmark. She configured GlassFish in her department to be used by 120 freshman programmers. Starting with a standard HP DL360 G5 rack server, installing Gentoo Linux, NetBeans for deployment of web apps to a remote GlassFish, creating multiple domains and even performance tuning the Application Server."

Finally, continuing his game mapping series, Sergey Malenkov shows how to use a Triangular tile map. "Recall from the previous post there are only three regular polygons that can be used as tiles. Let's have a look at triangles now. Such tiles are practically not used in games because there is no direct path on the map and the game unit should be turned at each tile. Besides, it is rather hard to place units within acute corners because a lot of free space is wasted."

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.

So one phone doesn't work like another... so what?