With a back-to-the-future technology calledto be launched Thursday, Sun Microsystems hopes to attract a new class of developer while building a much-needed new revenue source.
JavaFX 1.0 returns to the sales pitch that Sun used during Java's launch more than 13 years ago: a foundation for software on a wide variety of computing "clients" such as desktop computers or mobile phones. JavaFX builds on current Java technology but adds two major pieces.
First is a new software foundation designed to run so-called rich Internet applications--network-enabled programs with lush user interfaces. Second is a new programming language called JavaFX Script that's intended to be easier to use than traditional Java.
"This is the essence of the Hail Mary," said Illuminata analyst Jonathan Eunice. "I would like to think there's a role for Java on the client, but it's very late."
But Chief Executive Jonathan Schwartz, despite, believes that JavaFX will overcome its obstacles.
"Don't confuse relevance for stock price," he said, pointing to Java's widespread adoption among developers and students, and to Sun's expansion into newer open-source areas such as the MySQL database software. "We're more relevant today than any other software developer on the face of the Earth."
And while JavaFX may not be widely discussed today as a rich Internet application foundation, "I promise you that will change in the next 60 to 90 days," Schwartz said.
With help from allies such as IBM, Sun built Java into a powerful technology for server software tasks such as running stock-trading applications. And it gained a stronghold on millions of mobile phones.
JavaFX is designed to address both of those issues. First, a more unified "runtime" foundation spans PCs and mobile phones, though the latter version isn't expected until the first half of 2009. And this time, Sun supplies it in an unmodified form so phone manufacturers won't splinter it into incompatible versions.
"We're making our binaries available" to mobile-phone makers "so we can unify the Java platform implementations," said Schwartz, who expects rapid adoption. "We're starting with a couple billion handsets in the marketplace and swimming downstream."
The business case
Sun also will charge those handset makers a per-unit royalty for JavaFX, and right now, Sun needs all the revenue it can get. Although Java has been good for Sun's brand, it hasn't been a cash cow, but here again, Schwartz has high expectations.
"Java has become the single most profitable software product at Sun, growing more rapidly than any other," he said, pointing to billings (PDF) that Sun charged customers in the company's most recent quarter.
In raw revenue, though, its 18 percent growth to $34 million lagged that of MySQL, for which billings grew 50 percent annually to $37 million. And Sun's hardware revenue still is an order of magnitude larger than its software revenue.
Schwartz also believes that JavaFX has more appeal to content providers because it comes from a neutral technology supplier, not a potential rival.
"The problem with browsers, when viewed as the default mechanism for delivering content for the Web, is that browsers have become hostile territory," Schwartz argued. "Internet Explorer is owned by Microsoft. Firefox is owned by Google, at this point. Chrome is owned by Google. Beyond that, with maybe (the exception) of Safari, which is owned by Apple, there is no safe route to distribute your content into the marketplace."
Perhaps JavaFX's open-source nature reduces the threat that Sun could hold a business partner hostage. But when it comes to safety, there also are risks to betting on new technology.
Distributing JavaFX is another challenge. The auto-update feature in desktop Java will take care of PCs, starting next year--though people will be able to actively download it sooner in coming days--but for mobile phones, Sun relies on handset makers and electronics companies such as TV makers to build it in.
JavaFX is designed to be easier to use too. The JavaFX Script origins lie in a project originally called F3, short for the "form follows function" slogan from the Bauhaus school of architectural thought.
"You can use Java to solve difficult problems," but doing so often requires sophisticated programming, said Eric Klein, Sun's vice president of Java marketing. And regular Java isn't well-adapted to creating basic, media-rich applications that run in browsers. Building a simple media player application in Java takes 100 lines of code, but JavaFX Script can do it in 20 or 30 lines, he said.
"The goal was to make (the) power of Java accessible to an entirely new class of developers," Klein said. "For existing developers, it would accelerate how fast they could get things done."
JavaFX also comes with a slick feature, the ability to move running applications out of the browser and onto the desktop--and back, if desired. Essentially, they can change their nature and abilities according to where they're housed. And the same application also can run on JavaFX Mobile, holding the promise for programmers that they won't have to endlessly rewrite the same applications for different media.
"You can build a media player, run it in a browser, then you can simply drag it out of your browser onto your desktop, and it becomes a desktop application automatically. It's the same code, the same application," said Jeet Kaul, Sun's senior vice president of Java engineering.
Moving to the desktop, the application could take advantage of new screen real estate that affords a better user interface and new permissions for tasks such as writing files to a hard drive, Kaul said.
"I'm invariably skeptical that a language you don't know yet is going to be easier than all the languages you do know," Eunice said. And unlike with earlier chapters of the Java saga, "Sun has to do all this heavy lifting on its own."