, Sun's Java for cell phones, called the mobile information device profile, or MIDP, is used in half the world's 1.4 billion phones for downloading other bits of software. But writing a program that can run on any handset still isn't possible.
It's an odd by-product of Java's success in the cell phone market. Ironing out the details of software such as the MIDP takes time, and neither the cell phone makers nor service providers have been willing to wait as they pump out the 700 million or so cell phones sold each year.
Sun's Java for cell phones was supposed to let developers write a single program that could run on any handset. That's never come to pass.
It's becoming clear to Sun engineers that the ultimate goal of "write once, run anywhere" may never be fully realized because the cell phone market is simply too diverse. Still, Java has helped the industry make tremendous strides.
Instead, Nokia, Motorola and other handset makers have built devices using their own fixes for MIDP.
Though that's understandable, since they have to deal with the immediate needs of the market, their actions have played a major role in sullying the "write once, run anywhere" promise of MIDP, say Sun executives and developers of cell phone software. That means that the extra costs and development time associated with creating multiple versions of the same software find their way into nearly every corner of the cell phone industry, from the price of handsets to the price for downloading a ring tone.
"Fragmentation is the one major roadblock that could mean the difference between success and failure for developers embracing this market," Allen Lau, chief technology officer at Tira Wireless, wrote in an article in the trade publication Java World.
What was billed ashas turned into quicksand, quipped developers attending Sun's recent JavaOne confab in San Francisco. None were louder than representatives of Nokia, which sells about a third of the world's cell phones, nearly every one with Java inside.
"Defragmentation remains a major issue," Nokia Chief Technology Officer Pertti Korhonen said during a recent speech to Java developers. "We need to reduce the fragmentation effect because interoperability is critical for today's mass market devices. We need to simplify the standard, and use open, fair and predictable licensing terms for the technology."
Though the cell phone industry has made tremendous strides in the last two years, it's becoming clear to engineers at Sun that the ultimate goal of "write once, run anywhere" may never be fully realized because the cell phone market is simply too diverse, said Eric Chu, a Sun senior director who played a role in much of the early MIDP development.
Sun's efforts to end the fragmentation problems have so far come up short. Just about every year the company has had another way to attack the problem. The latest attempt involves the Java Verified program, which was created several months ago to certify cell phone software and ensure that it runs on different companies' phones.
It's a radical change from past practices, when applications had to be tested by each handset maker in order to ensure the coding was bug-free and at a certain quality level. But it's too early to say how well the new program is working.
Great promise, mixed results
The MIDP standard, based on , or J2ME, was developed collaboratively by Sun and more than 20 cell phone companies. The goal was to provide the cell phone industry with a standard for downloading software onto phones, one that would allow a single version of any application, be it a three-dimensional game or instant messaging, to work on any phone.
Fragmentation issues surfaced quickly. The initial version of MIDP had a limited set of built-in features, so if handset makers wanted to, for instance, add 3D gaming, they had to build their own way of doing so into the handset. So a 3D game built to run on, say, a handset made by Motorola, wouldn't operate appropriately on a handset from Nokia.
Meanwhile, hardware makers were busy producing cell phones that were like snowflakes: No two were alike. Some had huge screens and tiny dial pads, others just the opposite. Application makers have had to account for the nuances or risk severely limiting the reach of their products.
Essentially, that means developers have had to do something different to their software to fit each different phone. Writing multiple versions of software can mean adding months of additional work on a program.
"It can take up to nine months to deploy an entertainment application," said Craig Hayman, vice president of carrier marketing at IBM. "But that's the duration of a cell phone in this market."
Sun, Nokia and others are still trying to deal with the issue. MIDP is now on its second version, one that accounts for just about any feature customers might want on a handset, so there's less of a need for proprietary software, Chu said.
There's also a movement afoot to standardize the ways in which different features on phones work together, Chu said. The proposed standard, known as MSA, or Mobile Service Architecture, is meant as an adjunct to MIDP, according to the handset makers and carriers that support the idea.
But don't expect the problems to go away anytime soon.
"You can look at (MIDP) as a problem, or at the incredible progress so far," said Jason Guesman, vice president of Seven, a Redwood City, Calif., wireless messaging specialist that competes with the likes of Research in Motion and Good Technology. "It's amazing what you can do now, thanks to Java, with a $99 handset. But write once, run anywhere isn't close."