The Register® — Biting the hand that feeds IT

Feeds

How Ellison could fight Google's Android - without lawyers

Lessons from Java's painful past

  • print
  • alert

Ensure Ease of Recovery with Asigra’s Agentless Software

First, the good news. Java on mobile phones has been a palpable success. Installed on eleven billion mobile phones worldwide, Java ME is one of the most widely available software development platforms - ever.

Its APIs are powerful and a pleasure to program with (as long as you're targeting a single device, of course). Also, the Sun Microsystems team did a sterling job of integrating NetBeans with connected profiles, making it easy to create MIDP apps - MIDP, or Mobile Information Device Profile, being the most common Java ME profile for phones.

At this week's OpenWorld in San Francisco, California, Oracle chief executive Larry Ellison's hucksters will be pushing MIDP hard. In theory, MIDP has a compelling story: as a single layer in the phone stack, it can go places Google's Android - the subject of law suit launched by Oracle - can't. Pretty much any modern phone can have a MIDP implementation, and most do.

Victim of history

And yet, developers don't seem to like MIDP. Corporations aren't interested in creating products for it, and it's just never enjoyed the same "fanboi-ism" as Apple's iPhone or Android. Despite its short history, Android already has over 80,000 apps available. By comparison, considering the number of MIDP devices out there, the rolling tumbleweed state of Java ME development suggests that something has gone horribly wrong.

Java ME is a victim of history. As a first-mover in the mobile phone market, it's the product of an era when phones were far more limited. In those days it was necessary to provide a hobbled language with certain packages and API functions missing.

But times change. Increasingly, bemused developers have asked why they couldn't now have the full Java SE on their phone. After all, OSX can be squeezed into an iPhone, and Linux plus the awesome Dalvik virtual machine fit neatly into a growing army of Android devices, while scaling seamlessly up to tablet size. Android runs a subset of Apache Software Foundation's (ASF's) Project Harmony, and implementation of Java SE, with the Dalvik VM.

Java ME was also a victim of circumstance. Instead of being a phone's software stack, it slots neatly into a manufacturer's own stack and operating system. Its reliance on differing implementations of phone and operating system services provided by different manufacturers has resulted in fragmentation sending developers ducking from the shrapnel.

Research in Motion kept the signing process in-house... no third party demanding your money for essentially nothing, on the basis that they exist and that they've deemed themselves to be "trusted".

Developing a MIDP app doesn't just mean creating one application, it means creating and testing on every single different device that you want your app to be available for, and hacking your app to cope with the differences. Frankly it's a nightmare.

The Java Verified program shoulders much of the burden for the decline of MIDP. Awkward for developers, expensive for their employers, impossible for open source or "bedroom coder" hobbyists, it seems designed to make MIDlet deployment a misery.

Those of us who questioned why Sun never managed to capitalize on Java should look at the signing issue. When Sun upgraded to MIDP2/CLDC1.1, they contracted out the certification and testing to third-parties, who could then charge whatever they wanted to sign and test your application.

Research in Motion, by contrast, kept the signing process in-house: pay them the princely sum of $100 per year, and that's that. No third party demanding your money for essentially nothing, on the basis that they exist and that they've deemed themselves to be "trusted".

But above all, Java ME is in desperate need of an official, central app store targeted at non-technical phone users. The Java store currently only caters to desktop Java apps and isn't even available outside the US. Without this essential component, Java ME development will never, ever come alive.

Despite the saddening story of Java on phones, and Oracle's attempt to keep it that way, it is now possible to write Java applications for a growing range of smart phones.

Frothy-mouthed developers can't seem to stop writing Android apps. It helps that Android has its own mascot, the grinning green robot that looks like it's about to start 'dissing mashed potato and selling you its powdered variety. But more practically, the platform fragmentation that has so beset Java ME doesn't seem to have affected Android quite so much. That's because Android controls the entire software stack and Google seems prepared to stand up to the nakedly self-serving phone manufacturers.

Meanwhile, another great Java ME barrier is nimbly avoided: app signing is simple and costs the developer nothing. You can use self-signed certificates to sign your applications. No certificate authority is needed.

Where's the jobs?

The only issue so far, is that the Android developer frenzy hasn't translated into an active job market. Aside from the occasional company employing someone to maintain a mobile version of their software, the majority of Android developers appear to be uploading weekend-coded apps to the marketplace in the hope of cashing in on their hobby.

The unstoppable marching Android paints a brutally different picture from the unhappy Java ME mouse. Java 2 ME - before it became just Java ME - was strong in 2004 compared with the ghost town it is now.

Of course, Java ME profiles will continue to hold a key position in low to mid-range phones - in other words, phones that are not Android or the iPhone. It'll likely be strong, too, on RIM's Blackberry. But for a product's market to be defined in terms of territory that its competitors have deigned to leave untouched, speaks ill of its future.

And if Java ME is to gain any meaningful developer mind and marketshare, Larry will need an extra-special announcement or three up his sleeve at OpenWorld. Namely: a full, uncompromising Java SE implementation, a unified MarketPlace/AppStore so users can browse and download apps over the air, and a single, powerful device configuration for smart phones.

With these three developments, and the backing of all the major phone manufacturers and carriers, Java ME could quickly become a serious contender. Without them, it'll remain a victim of history. ®

Matt Stephens founded independent book publisher Fingerpress, and co-authored Design Driven Testing: Test Smarter, Not Harder, due out this month.

Requirements Checklist for Choosing a Cloud Backup and Recovery Service Provider

Java - a confusing mess

Java with it's various editions, profiles, classes which may or may not be included is a confusing mess for anyone who tries to get involved with it and the "write once, run anywhere" hopes through using Java are quickly dashed. It still hasn't escaped confusion between Java and JavaScript in some quarters.

Where Android succeeds (as Ubuntu mostly does) is in packaging something as "the only thing", standardised across the entire range, which makes it much easier for people to get their heads around and a greater chance an app will run on a similar device. That in turn makes it a de facto choice and all those bedroom coders pile on in.

Android Dalvik will become "The New Java" and the rest will likely languish. I can see how that would nark Ellison but that's the way market forces are moving things. Java had its chance, over many years, and failed to conquer. Dalvik already looks like a success. It's seen a few bumps but nothing it can't rescue itself from.

4
0

You missed the point

The reality is that there is virtually 0 Java ME devices out there of interest to a 3rd party developer. What goes on a Java ME phone on 95%+ of java capable phones is strictly under operator control. No sane 3rd party developer would want to deal with that.

First and foremost for any media app (and non-media) this will nearly always mean IMS compliance and billing through the operator IMS subsystem or even worse - legacy billing. This also means that any media including video, video conf, etc will have to be shoehorned into the notion of "guaranteed, but mediocre user experience" instead of "best user experience available under current conditions". Sod that for laughs, this idea contradicts the basic economic theory of capturing the market. The initial market capture is on an empty market and the goods/service should cater to first adopters which means that they must deliver the max possible. An app shoehorned day one into "guaranteed, but mediocre" and geared towards the "end goal" cannot capture a market.

Second, the operator will always want to distribute through its own channel. Trying to do that for Java ME has already been done a few times in the past. It has always failed. No sane 3rd party developer will deal with 4000+ distribution channels each of which is with their own whims. Google and Apple have created a UNIFIED distribution channel. The developer no longer has to deal with 4000 product managers with contradicting requirements. Further to this, both of them have sufficient market power to say _NO_ and explain the operator how NO is spelled if necessary. No developer has this market power.

Until Oracle creates its _OWN_ distribution channel for Java ME, with its own billing hooks and takes onto itself mediating the relationship between the 3rd party developer and the operator Java ME will remain what it is now - an environment which developers hate and whis is used only by some operators for in-house or contracted minimal UI customisation.

4
0

It's quite simple...

The guardians of Java have consistently and repeatedly misunderstood the consumer space. Whether it's their academic or corporate background, they failed to capitalise on the unique advantages they had in being first to market with an extensive, technically solid and consistent platform.

They dropped the ball on the desktop, they dropped the ball on the browser, they dropped the ball on mobile and they're in danger of dropping the ball on the web (witness the thrashing of dozens of frameworks, battling for attention).

It seems recently that in common with the old guard of mobile phone manufacturers their first thoughts turn to the industry deals they can do, rather than what is needed to engage the end user and facilitate the work of the developer. Technical excellence and robust licenses are not enough in the modern world.

There is still a lot to commend the Java platform, but Sun/Oracle's stewardship seems increasingly irrelevant. That's particularly disappointing given the resource they contribute to the platform.

3
0

More from The Register

Bjarne Again: Hallelujah for C++
Plus: Now officially OK to admit you never used STL algorithms
Nuke plants to rely on PDP-11 code UNTIL 2050!
Programmers and their walking sticks converge in Canada
Interwebs taunt Sir Jony over Apple eye candy makeover
Hey Ive, Ive... add more unicorns, willya?
SCO vs. IBM battle resumes over ownership of Unix
Zombie lawsuit back and wants to suck the brains out of Linux
Red Hat to ditch MySQL for MariaDB in RHEL 7
So long, Oracle! Don't let the door hit you on the way out
Shy? Socially inadequate? Fiddling with your phone could help
App 'tells the brutal truth' about social inadequates' chatup lines
Java EE 7 melds HTML5 with enterprise apps
New release arrives with GlassFish, NetBeans support
 breaking news
'Office Facebook' firm Tibbr wants you to PAY for mobe-meetings app
Great idea. Punters won't cough for it though
 breaking news
The only Waze is Google: Ad giant tipped to gobble map app 'for $1.3bn'
Pac-Man-satnav-ish upstart in bidding war with Apple, Facebook
 breaking news
PM Cameron calls for modern, programmable computers! (We think)
IT education musings to G8 chiefs to mystify IT industry