Java has a new look andit would seema new focus. On the first day of the 2003 JavaOne developer conference Tuesday, Sun Microsystems unveiled an updated Java logo and revealed a big marketing push to raise Java awareness among consumers. In years past, this conference was the esoteric domain of hardcore Java developers and advanced tech-speak, where JDK upgrades were announced and new coding techniques were always among the hot topics of discussion. This year's opening keynote, however, showed Sun's concerns over getting Java technology in the handsand mindsof consumers
, not just developers.
The key theme of this year's conference is inarguably the opportunity that exists right now for Java in the consumer wireless space. Large portions of Tuesday's general session focused on consumer devices, consumer applications, and provisioning. While we were surprised that Sun expended no energy at all discussing enterprise wireless developmentor enterprise development of any kindSun clearlyand rightlysees the 1.5 billion Java-enabled wireless handsets as a market opportunity for Java and its developers.
The morning keynote Tuesday was peppered with statistics about the size of the consumer wireless opportunity$1.6 billion in revenue for ringtones aloneand the likelihood of adding 250 million more Java-enabled handsets to the market in the next six months.
|Developers, he said, typically know the specific types they are using, and generics allow them to declare the types at design time, rather than having to cast values from Object to the correct type at run time.|
Games were a huge focus. Sun Executive Vice President, Software, Jonathan Schwartz quoted statistics from Electronic Arts indicating that the revenue for Java games is now $8.2 billion. There are, he said, 1.2 billion Java virtual machines installed throughout the world, including Smart Cards.
Ease of Development
If developer applause can be considered a valid metric for success, Sun is also scoring points for major upcoming features in the Java language. The conference highlighted some language improvements that should accommodate the other overarching theme of the 2003 JavaOne conference: ease of development (EoD).
The EoD theme was reiterated throughout the general and technical keynotes. As Graham Hamilton, Vice President and Fellow, explained in the technical keynote, the challenge with having a technology as powerful as Java (particularly for enterprise application development) is that complexity often is a byproduct of its vast capabilities. Sun, therefore, has a mandate to improve simplicity throughout its Java developer kits.
Sun sees a big opportunity in enabling simplified development with Java tools geared toward smaller, departmental-level applications that don't require the power of full-scale technologies like J2EE. "That's the space where historically Visual Basic is very strong," said Hamilton, "and those technologies are still very entrenched in that space. That's a big growth opportunity for us. That's where we can acquire hordes of new developers for the Java platform." Sun offered no details, at that time, about how it plans to seize this opportunity, which presupposes an immense developer migration from Microsoft technology to Java.
To show developers how Sun will make developers' jobs easier, the company highlighted a few upcoming EoD features in JDK 1.5, due out in 2004. Code-named Tiger, this release represents the first major upgrade to the Java language since 1995. Among its new features:
- Iterating over collections
- Enumerated types
- Autoboxing (and unboxing) of primitive types
- Simple formatted I/O
- printf capability, like that in C++
- Enhanced scripting language support
The metadata feature represents a shift in how Java developers code, from imperative programming to declarative programming. The feature will enable programmers to define new attributes and annotate classes, methods, and fields. Java tools and libraries will then be able to use the annotations to alter the way the applications behave at install time or at run time.
The generics feature, long available in C++, has been in the works for years, according to Hamilton. Although designing generics was difficult, "using generics is quite straightforward," he said. This feature allows the creation of parameterized classes and methods, enabling Java developers to create custom variations of their code for different types. Developers, he said, typically know the specific types they are using, and generics allow them to declare the types at design time, rather than having to cast values from Object to the correct type at run time. In an example taken from JAX-RPC code, a seven-line snippet was reduced to four lines after applying generics.
Sun executives also discussed Java's intermediate feature releases. Bug fixes are a primary feature of both releases. The 1.4.1 release, which appeared in September 2002, added parallel and concurrent garbage collection. The 1.4.2 (due in June 2003) release will add new GUIs for Windows XP and GTK+ as well as performance enhancements for application startup and Java Swing.
Keeping WORA Alive
Although these language changes were a highlight of the technical keynote, Sun's overall focus rarely shifted away from consumer wireless technologies.
Perhaps the most exciting announcement to support developers of wireless consumer applications was JSR 185Java Technology for the Wireless Industry (JTWI).
In the technical keynote, Sun Distinguished Engineer Tim Lindholm frequently called JTWI a "roadmap." More specifically, JTWI is a guideline for Java software vendors to adhere to certain specifications and standards in a preemptive strike against future transmogrification of Java. As the wireless industry continues to diffuse, both on the software and hardware sides, Java development is endangered by the need for a very high number of various implementations to satisfy the high number of platform variations deployed. This combination puts a huge burden on Java developers to modify their applications to run on specific combinations of hardware and software and to satisfy the huge number of third-party APIs being deployed with handsets.
"APIs can be defined by vendors to take rapid advantage of new platform functionality," explained Lindholm. "APIs are also used to differentiate their platforms from other vendors' platforms. There can be differences in platform implementation that might be why the spec gives you a certain flexibility of implementation, but if you take advantage of that it can lead to failure of interoperability of the implementations."
JTWI, he says, will verify "what JSRs work together and how. And it creates a roadmap for the deployment of this core set of wireless technologies. In doing this the intent is to try to preempt vendor-specific APIs by giving vendors a better idea of where the platform is going. It will also improve compatibility and interoperability by getting vendors to agree on specific behaviors where standards allow behaviors to vary."
An initiative like the JTWI, if successful, is precisely the kind of first step that Java wireless development desperately needs. With dozens of vendors supporting thousands of handsets and more diversification on the way, the JTWI may help stem the tide of diversity in the wireless industry that threatens now to make a mockery of Java's Write Once, Run Anywhere mantra.
Version 1 of this "roadmap" is slated to address these specifications:
- CLDC 1.0
- MIDP 2.0
- WMA 1.1
- MMAPI 1.1