Skip to main content

Just Because

Posted by editor on October 22, 2007 at 8:16 AM PDT

Java SE for the phone? Why not?

It's obvious that today's hand-held and other embedded devices (set-top boxes, game consoles, etc.) are far more powerful than the desktop PCs of just a few years ago. In fact, so few years, that they fall within the timeframe of recent versions of Java. Which leads many to ask "if Java SE 1.4 or 5 could run reasonably well on those PCs, shouldn't they run on these devices just as well?" After all, considering the PlayStation 3 is powerful enough to become the dominant Folding@Home OS despite a small install base, I think it should be able to handle Tumbling Duke and the Swing Set just fine.

Of course, like a lot of things, this talk of SE on the device has gotten a push from the iPhone, which seems to beg the tech press to write articles about it. Earlier, the vogue theory was that the inclusion of a desktop-quality browser, MobileSafari, was Apple's attempt to push towards an Ajax standard for Rich Internet Applications on the small device, and away from Flash and Java ME -- RoughlyDrafted's hype-tacular The iPhone Threat to Adobe, Microsoft, Sun, Real, BREW, Symbian is a typical example of this line of thinking. But now that the iPhone will be getting a proper SDK, thinking is again retuning to running big stuff directly on the device. Like Fabrizio Giudici's openly wondering about possibly porting OpenJDK to the iPhone.

But, um, don't we already have Java for most phones? The Micro Edition? That brings us to today's news, as CNet blogger Stephen Shankland sees Java SE replacing ME on the phone, in his blog Sun starts bidding adieu to mobile-specific Java. "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.""

Shankland cites JavaFX Mobile as evidence of an SE-to-the-device migration, based on the SavaJE, which included most of Java SE, with a few sensible omissions. He points out the advantage would be to unify and simplify the mobile Java platform, in sharp contrast to the various profiles and options of the ME world. "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."

Simplicity is one thing, but given that SE will surely use up a lot more of the device's memory and CPU, it is fair to ask what developers will get from SE on the device that they can't achieve with ME. OK, you'll have floats and doubles now, but what will you do with them? Here's one thought: ME disallows runtime classloading, so having SE on the device and the ability to load and execute classes over the air suddenly makes Jini's longtime promises a lot more interesting. Remember the old Jini vision of getting a printer driver from an unfamiliar device while you're mobile? That might be a lot more compelling with the always-portable mobile phone than the occasionally portable laptop. Granted, there are obvious security concerns -- it sucks if that printer driver is a trojan that turns your phone into a spam zombie or recruits it for a DDoS attack -- but it does seem a valid argument to say we could do a lot more with SE on the device than ME.

Still, it seems like the key isn't just that the devices are now capable of running SE, it's that there needs to be a genuine value in running SE, along with an awareness of the difference between the desktop and the device. MHP and BD-J have a totally different set of widgets, the HAVi widget set, better suited to use with a simple remote control than a keyboard and mouse, for example.

Are you ready for SE in small spaces? What will you do with it?

Also in Java Today,
issue 143 of the JavaTools Community Newsletter, is out, with a brief guide to the JavaTools projects directory, tool-related news from around the web, new tools that have joined the community, and a Tool Tip describing the available kinds of information about project activity and an call to the community to help determine what other kinds of project metrics would be useful.

The ExpressionLayout project offers a new powerful, yet easy to use layout manager for use in Swing and AWT based applications. Project owner jskress writes, "basically, this is an experiment to test out some ideas I've had about the possibility of creating a layout manager that is generic enough to use for as many different component arrangements as possible and powerful enough to support any variety of dynamic arrangements while still being simple to read and use." Versions are available for Java 6, Java 5 and even Java 1.4.

This week's Spotlight focuses on the current Ask The Experts session, which is on NetBeans, the free, open-source, Integrated Development Environment (IDE). NetBeans IDE 6.0, which is currently available as a beta download, contains a wealth of new features designed to make application development easier and faster. Got a question about NetBeans IDE 6.0? Post it during this session and get answers from key members of the NetBeans evangelism team: Judith Lilienfeld, Brian Leonard, and David Botterill.