SAN FRANCISCO--One area where Sun Microsystems' Java caught on was in mobile phones, but a leader of the project is working to eventually replace the mobile-specific version of the software.
Java Standard Edition (SE), geared for desktop computers, will gradually supplant Java Micro Edition (ME) as technology improvements let more computing power be packed into smaller devices, said James Gosling, the Sun vice president often called the father of Java.
"We're trying to converge everything to the Java SE specification. Cell phones and TV set-top boxes are growing up," Gosling said at a Java media event here Wednesday. "That convergence is going to take years."
The prime example of the trend is Sun's own JavaFX Mobile, software Sun got through its SavaJe acquisition and which the company hopes mobile phone makers will embrace. JavaFX Mobile includes almost all of Java SE, though it's missing a few pieces such as CORBA (brace yourself: Common Object Request Broker Architecture) for getting software to work with other programs across a network.
Sun's Java expectation dovetails with recent trends, most notably Apple's iPhone, which architecturally is much more an Apple computer writ small than a mobile phone writ large. In particular, Apple uses a version of its regular Safari Web browser so users will have as much of the desktop Internet experience as possible.
At the same time, Intel is working to bring x86 processors that run PCs into mobile gadgets. It's in cohoots with open-source efforts including Ubuntu Mobile and Mobile Firefox .
The move to Java SE won't happen overnight. Rich Green, Sun's executive vide president of software, said he expects smart phones using various pared-down versions of Java to stay in the market for at least a decade.
But the shift already was under way. "All the work in Java ME had been pushing it closer and closer to Java SE," Gosling said.
Defragmenting mobile Java
Moving to Java SE could help fix one nagging problem with Java ME: fragmentation.
Java ME is a collection of abilities--basic ones and higher-level options layered on top--each defined by a detailed description called a Java specification request. For Java ME, there are a large number of these JSRs for various features. That posed a challenge to Java's original tagline, "write once, run anywhere."
The tagline came about because a program written in Java could in principle run on any computer that had a Java virtual machine. The JVM is a software foundation that lets a generic Java program run on a particular computer. But with the multiplicity of Java ME extensions, there was often little guarantee that a program written for one mobile phone would work on another.
Java SE has a much richer basic set of abilities, so using it instead of Java ME could at least in principle restore some of Java's promise of software portability.
JavaFX mobile is one component of a multipronged effort called JavaFX that Sun announced in May at its JavaOne conference.
"JavaFX is probably the largest and most complex software engineering effort Sun has ever done," Gosling said. Here's a quick tour of the JavaFX components:
Tour de Java FX jargon
Unless you're a serious Java nerd, and maybe even if you are, Sun's latest nomenclature is a crazy hodge-podge of terms. Java SE--OK, that's been around for nearly a decade, we can handle it. Though there was some numbering madness a few years ago, Sun seems to have settled on the current version being Java SE 6. But let's work outward from there.
First comes Java 6 Update N, formerly called the Consumer Java Runtime Environment (JRE). This is an attempt to make Java SE easier on the average computer user, chiefly through improvements to the plug-in that Web browsers use to deal with Web pages using Java.
Among the Update N features: It preloads Java when the computer boots to avoid the excruciating delay when you encounter a Java Web page. It installs faster by loading only a bare-minimum kernel--typically less than 4MB--that gets things started and then updates itself with the full 12MB Java software collection. It takes advantage of Windows' Direct3D graphics abilities. And it includes a more graphically modern user interface that gives a unified look across multiple operating system.
Update N should go into beta testing in December and be available a few months later, said Chet Haase, Sun's Java SE client architect.
Of course, you can't have a script without something to understand it. Thus there's JavaFX compiler to translate people's code into instructions the computer can execute.
Last is the aforementioned Java FX Mobile. This software is in part a reaction to gripes by Java ME developers who wanted a more unified foundation, Gosling said. Another difference compared to Java ME is that Sun will deliver it as a prewritten binary program; Java ME typically comes as source code that programmers must compile into something useful.
Potshots at the competition
Gosling and Java have been at the vanguard of an idea that in a way is just coming back into vogue: rich Internet applications, which is software that runs in a Web browser but comes with a lot more pizzazz and capability than bland Web pages.
Java caught on as a way to run server software and to run games on mobile phones, but one original promise of Java was turning a Web browser into a foundation for sophisticated software. (If you're having flashbacks to Netscape taking on Microsoft Windows and the resulting federal antitrust case, just breathe deeply for a moment to settle down.)
Gosling thinks JavaFX has a chance, too, though, listing several advantages he believes it has: a richer user interface, faster performance, a robust and well accepted language and better abilities when a computer is disconnected from a network.
And security, he adds. Adobe's AIR is designed to let programs work like regular PC software, but Gosling thinks the approach unwise. "It's a petri dish for viruses. Security is really hard to implement well."