The Frustrations of Java

As Jonathan Schwartz, the famous blogging COO of Sun Microsystems, steps up to take over the big job from Scott McNealy, it’s a good time to ponder where “Java Platform, Micro Edition” as we must now call it, or J2ME as it used to be known, is actually going.

The concept of a platform like J2ME (sorry, the new name is just SO cumbersome) is that a developer can produce one application and then port it across many different handsets with ease. But anyone who has ever done any J2ME development knows that, in practice, this is simply not the case and the vision falls far short of reality by a very long way indeed.

In non-technical terms, developing in J2ME is like trying to change a bicycle tyre for the first time. Firstly, it’s difficult enough in its own right. But when you do manage to get the inner tube inside the tyre, you have to work it in all the way round. And when you get back to the beginning, it’s popped out somewhere else, so you have to start all over again.

20% of the time and effort in developing a J2ME app goes into the first iteration of the code. And 80% of the work goes into porting it across all the handsets that you want it to run on. This can be a cripplingly expensive, not to say, time-consuming process.

I was chatting to Mark Curtis of Flirtomatic (great service, if you haven’t checked it out) and he launched the product in J2ME only to abandon it within a few weeks. In Mark’s case, it was partly as the WAP version proved to be better than expected and proved to be very popular with users. But partly as Java isn’t suitable for rapid application development.

If you launch a mobile application or service, you need the ability to make changes all the time as you work out how customers are using it and as you learn more about the product. Changing a WAP site is pretty simple. Changing a J2ME application is easy too, but then you have to roll those changes across all the different handsets and test them. This means the pace of change and innovation crawls to a snail like pace. Or maybe that’s unfair to snails.

Whichever way you look at things, when a high profile product like Flirtomatic, led by a tech veteran and thought leader like Mark abandons a development platform altogether, it’s not good news.

So who is to blame? If only it was that simple. I spoke to Tom Hume of Future Platforms and J2ME and all-things-mobile guru and while Sun could definitely do a better job, the main issue is the widely differing specs among handsets. As Tom says:

But I don’t see how we can persuade a disparate group of handset vendors to make their phones the same – these guys have to differentiate themselves from each other.

So where does this leave J2ME and Jonathan Schwartz, as he ponders Sun’s future? Well, apart from coming up with a better name, the future doesn’t look encouraging. J2ME can do lots of things that the mobile web can’t do – yet. But, I bet in many cases, those extra features are nice-to-have and not truly essential.

I think we’ll see more and more products and applications which should, by rights, go the J2ME route but seek work-arounds if they possibly can, by going for a WAP solution. Ironically, this is the very outcome predicted by none other than Sun’s Scott McNealy himself with his “the network is the computer”. Java is old-school rich client, WAP is the network.

However, McNealy, visionary though he undoubtedly is, didn’t go quite far enough. Actually, the network is the mobile, which doesn’t leave Sun in a great place if their main mobile product simply doesn’t deliver.

We’ve seen time and again in technology that “good enough” often beats “perfect” and I’m afraid that we might be about to see this happen all over again.

[tags]java, j2me, schwartz, mcnealy, sun microsystems, curtis, future platforms, flirtomatic[/tags]

—–>Follow us on Twitter too: @russellbuckley and @caaarlo