What a difference a year makes. Java-enabled phones were just beginning to grace the JavaOne Pavilion floor in 2001; a year that resulted in sales of about 15 million Java-enabled devices, according to Sun Microsystems. This year, not only were Java-enabled phones pervasive, but so were wireless Java evangelists, touting Java's many benefits on the mobile device. According to Sun, more than 200 companies are delivering wireless Java applications today, and more than 100 million Java devices will be distributed this year (Nokia alone plans to deliver half that number). If JavaOne 2002 is any indication, Java, specifically Java 2 Platform, Micro Edition (J2ME), is truly taking off in the wireless space, even if it has been slow to get there.
"One of the biggest differences we're seeing from last year is vertical market applications, customized applications for specific vertical markets like transportation, healthcare, and law enforcement," says Rajiv Mehta, director of business development and e-business operations at Motorola. "You'll also see an increase in the number of handsets supporting J2ME, so you'll see entry-level phones, high-end phones, phones with color displays, phones with black-and-white displays...."
With WAP (Wireless Application Protocol) failing to deliver, J2ME has gained significant momentum over the past year. Some of J2ME's appeal to handset manufacturers and operators is its ability to run on top of any device's operating system, rich graphical user interfaces, persistent memory, offline functionality, and most important, a large programmer base, which Sun now estimates at more than 3 million developers.
"Java provides our customers a way to store data on the device, which they're not able to do in the WAP scenario today," says Eileen Mercilliott, group manager for J2ME products and developer program at Nextel. "There are some cases where WAP works perfectly well, but if our customers have any storage locally on the device and want to use the application when they're out of network coverage, it is a very compelling case to be able to use Java."
For Java developers, J2ME is the obvious choice. Gustavo Eliano de Paula, a software engineer for Brazil-based Cesar, uses J2ME to develop game software. Like most Java developers, he started using Java to develop server-side applications. Currently under contract with Motorola, de Paula felt it was a natural transition to use J2ME for mobile development. "We already knew Java was a great solution for us because it's the type of environment that's not available anywhere else for cell phones," he says. "J2ME is very well specified and provides the resources that developers need to develop mobile applications."
Michael Yuan, a PhD candidate at the University of Texas at Austin, uses J2ME and J2EE (Java 2 Platform, Enterprise Edition) to develop mobile research applications for projects in the Center for Research in Electronic Commerce. "Java is a well designed OO (object-oriented) language," he says. "The main strengths of J2ME are cross-platform compatibility; tight integration with J2EE backends; VM and garbage collection to guard against memory leaks; and its industry and tools support."
Getting up to speed
But Java is not without its challenges. The Java runtime environment on small devices, the KVM, is relatively large at 500KB; different browsers implement Java differently; and there are still issues with performance and security.
"The challenge we're having is getting Java to adapt to different types of displays," says de Paula. "Java is the platform, but the platform does not specify the hardware, so you can have Java on a color display, a black-and-white display, a big display, a small display, and if you want to develop an application that adapts to all kinds of displays, it's very complicated. That's the biggest challenge that we have during the development phase."
"The limitations, of course, are performance and security," says Yuan. "Performance is especially a problem if Java is used to perform public key operations. The current MIDP (Mobile Information Device Profile) does not have a security API. But the upcoming MIDP spec will support HTTPS," he adds.
These problems could soon be remedied. As the lead of that MIDP 2.0 spec, Motorola was previewing support for the new standard, currently under public review, at its JavaOne booth. MIDP 2.0 enables advanced gaming, sound, security, provisioning, and enhanced user experience in wireless communication devices, according to Luis Quiroga, a senior product marketing manager at Motorola. The new version is expected by years' end.
In addition, Sun addressed performance issues this week with its announcement of two new JVMs -- codenamed Project Monty -- for Connected Limited Device Configuration (CLDC) and Connected Device Configuration (CDC)/Dynamic Compiler. Together with Arm and Symbian, Sun will spearhead this effort so developers can deliver richer content and faster, more robust applications for mobile phones, PDAs, set-top boxes, residential gateways, and automotive systems.
"We took a lot of the same concepts as HotSpot and applied them to the cell phone," says Kenneth Tallman, group manager of software at Sun. "The result is a 10- to 15-times performance increase over the original KVM 1.0, and 8- to 10-times increase over the current KVM 1.03, with minimal change in the footprint." For consumers, "The design also takes into account battery conservation and faster startup time," he adds.
We want you
But without developers creating J2ME applications, Java's success on the mobile device will cease to exist. That's why, in an effort to gain developer favor, Sun, and some of those who have a large stake in J2ME's success, announced this week free developer programs to get developers building J2ME applications.
As part of this aggressive courtship, Sun Microsystems announced its new standards-based Wireless Developer Portal, which includes tutorials, case studies, and reports; developer forums; a code-sharing network; a bug database, and more.
Nokia, Motorola, Sprint, and Nextel provide similar programs, but those are specific to their commercial devices. These resources can also help Java developers market their applications to the appropriate operators.
"For Java to really take off and be popular, it needs support from not only the handset manufacturers and operators but the developer community as well. Hopefully developers will get out there and write some really great applications," says Chris Lovejoy, a business development manager at Nokia.
But why the need for such developer programs? Could J2ME, with its alphabet soup of configurations and profiles, be too complex? Many attendees seemed interested in learning to use J2ME, but few were actually implementing the technology today.
"A lot of people feel J2ME is hard because there are so many different configurations and profiles," says Yuan. "But not all of them are important. MIDP is so far the most visible component in J2ME. Since MIDP is designed for very small devices (cell phones), its APIs are very simple. It is also easy to test your MIDP programs even if you do not have an Internet-enabled, MIDP-enabled phone or PDA. There are several emulators from Sun, Palm, and phone manufacturers," he continues.
Tallman echoes that sentiment, noting that one developer won't need to use all the APIs, but must choose the right one for his or her project. "While there are a number of JSRs (Java Specification Requests) available, each one is designed to address a specific market need," he says. "For example, the Mobile Media API, which brings audio and video capabilities to J2ME MIDP-based handsets; there are handset manufacturers who are quite anxious to get this code because they want to put multimedia into their handsets and they want to do it now. You don't have to wait for MIDP 2.0; you can add this to MIDP 1.0. There are people who want to develop games with the Games API. [J2ME] gives developers and handset manufacturers the ability to use the environment in a way that makes the most sense."
Though the core technology has many benefits, some say J2ME is too stripped down. This has led companies like Sprint and Nextel to add some functionality on top of the platform.
In its free Java toolkit, Sprint PCS provides developers with its own proprietary Java API classes, including
Vibrator, to name a few.
Though these additions could help developers, some say proprietary extensions could regress the effort to standardize J2ME. In response to this concern at a JavaOne press event, Paul Reddick, vice president of business development at Sprint PCS said, "We're not just doing these things to differentiate ourselves. We're doing them because they don't exist in J2ME. We'd love to see these become standards."
Sprint isn't the only company that feels J2ME lacks a few ingredients. In its own development, Nextel created special classes to enhance J2ME, though those classes are not available to the public. "In the core standard, J2ME is satisfactory and we've been able to work with our manufacturer Motorola on special classes to enhance the core standard, including the SSL (Secure Socket Layer) capabilities, download capabilities...what you can't do in the standard," says Mercilliott. "We've been able to get our products to market fairly quickly with basic capabilities. Time to market for us is the most critical thing, and we've been able to add capabilities on top of the core functionality," she adds.
Can you hear me now?
Time to market is crucial in a market that seems to move faster than the technology can be delivered. Some feel Java's open environment, though necessary, compromises time to market.
"It's sort of a double-edged sword," says John Yuzdepski, vice president and general manager at Sprint PCS. "You need a balance of openness, but not so much committee work that nothing can get done. Usually there are some industry guardians, like Sun and the JCP (Java Community Process). We need a lot of innovation, but we need to move quickly."
It's that balance that might have caused J2ME to arrive fashionably late to the wireless space; its first release being in 1999. But what does get delivered is community contribution from experts working for the good of the technology. In Tallman's words, "Overnight success takes a couple years."
Learn more about this topic
- Motorola Developer Resources
- Nextel's Developer Program
- Nokia's Developer Forum
- Sprint PCS Application Developer Program
- Sun's Wireless Developer Portal
- Browse the Java 2 Platform, Micro Edition section of JavaWorld's Topical Index
- Browse the Wireless Development section of JavaWorld's Topical Index
- Browse the Devices section of JavaWorld's Topical Index
- Stay on top of the ever-changing world of wireless development with JavaWorld's free Micro Java email newsletter
- Chat about devices and gadgets galore in JavaWorld's Device Programming discussion
- You'll find a wealth of IT-related articles from our sister publications at IDG.net