Update: I added comment from Google.
Painful flashbacks are beginning to torment those of us who lived through the Java wars between Sun Microsystems and Microsoft that began 10 years ago.
Earlier this week, Google released programming tools for its Android mobile-phone software project that shun the existing Java standard-setting process in favor of a Google-specific variety. Sun responded on Wednesday by expressing concern that Google's Android project could fragment Java into incompatible versions.
"Anything that creates a more diverse or fractured platform is not in (developers') best interests," said Rich Green, executive vice president of Sun's software work, speaking to reporters at the Oracle OpenWorld conference in San Francisco. "The feedback from developers is, 'Help us fix this.'"
He said Sun wants to work with Google to nip any problems in the bud. "We're really interested in working with Google to make sure developers don't end up with a fractured environment. We're reaching out to Google and assuming they'll be reaching out to us to ensure these platforms and APIs will be compatible so deployment on a wide variety of platforms will be possible," Green said.
Google unrepentant
Google didn't adopt a terribly conciliatory tone in its response, arguing that when it comes to Java fragmentation, Android is the solution, not the problem.
"Google and the other members of the Open Handset Alliance are working to help solve fragmentation and supporting the developer community by creating Android, a mobile platform that responds to the needs of the developers, has the backing of industry leaders, and will be available as open source under a nonrestrictive license," Google said in a statement.
And asked whether it would discuss the issue with Sun, Google said, "We're talking with industry leaders around the world about Android and the Open Handset Alliance but we're not commenting on any of those discussions."
On Monday, Google indicated that it expects fellow members of the Open Handset Alliance phones who are working on the Android phones to help keep its variation of Java familiar to programmers.
Java today is governed by the Java Community Process, in which a number of companies vote on which features to accept into the Java system and create standard mechanisms called application programming interfaces (APIs) by which Java software can use those features. The extent to which Android will or must conform to these APIs is not clear.
For those who need a refresher on the Microsoft history here, the software company licensed Java back in the 1990s, way before it became open-source software. However, Microsoft added some features to Java that meant that it could work differently on Windows machines, a move Sun saw as undermining the "write once, run anywhere" promise of the technology.
Google's Android software gives Sun Microsystems' Java technology a starring role--but not the version of Java the rest of the mobile phone industry has been developing since the 1990s.
Instead, Google struck off on its own in an attempt to improve performance and openness for the software used in the Open Handset Alliance phones. That means programmers will have a new variety of Java to reckon with--offset somewhat by Google's $10 million code contest to draw developers in.
One difference is Google's development of its own core Java virtual machine (JVM) technology called Dalvik, the software that actually executes Java programs on an Android phone, which Google says means Java programs run fast even on the constrained hardware of mobile phones. But a more significant departure than just using an in-house JVM is the fact that Android isn't part of the Java Community Process that Sun established in 1999 to oversee the development of new Java features.
The JCP governs Java by codifying new features as application programming interfaces (APIs), so programmers can have a standard way of calling upon new technology such as Bluetooth support or 3D graphics. But that existing Java realm wouldn't accommodate the developer freedoms Google thought were important in Android.
"We wanted the platform to be open in a lot of different ways," said Mike Cleron, a Google senior staff engineer working on Android. "The idea is that anybody can come along and replace the pieces of the Android experience on a very fine-grained level. The existing APIs didn't really allow the level of openness we were hoping to achieve in Android."
It should be noted that Google isn't working in a Java vacuum. For example, one of the OHA partners, Motorola, has helped lead development of Java for mobile devices, and Google wants to keep the Java programming experience familiar to developers. And Google is an executive committee member of the JCP, though only for the Standard and Enterprise editions that run on PCs and servers, not the mobile edition for phones and other devices.
"We have people on the team who are active in the Java community. They've been helpful in informing us and guiding us, making sure what we were doing is familiar to folks in the Java community," said Steve Horowitz, Android's engineering director.
Further fragmented?
But the bigger issue is whether Google's effort will worsen the already fractured world of Java. Not all phones support all the same Java standards, so programmers can't be sure that their software will run on a multiplicity of devices, as the "write once, run anywhere" Java tagline promises.
"They are using Java, but they aren't implementing any well-known Java framework, and really that just creates another standard to support. The risk they take here is that they might fragment the market further," Benoit Schillings, Trolltech chief technology officer, told my comrade Maggie Reardon. Trolltech, which sells tools and components for programmers whose software runs either on PCs or on mobile phones.
Mauro Lollo, CEO of mobile phone video-streaming company Movidity, saw Google's work similarly. "In essence, they've created another standard. Standards are great, but the challenge is that there are so many of them," he said.
Google also faces a common risk of open-source software, that the openness will mean programmers can "fork" projects in different, incompatible directions. (Indeed, this was one of the earlier reasons Sun resisted its eventual decision to make Java open-source software.) "In the end, you could have 20 different versions of the Android technology that are incompatible, because anyone can take the license, modify it, and create another variation," Schillings said.
For its part, Sun supports Java and open-source software on mobile devices, but expessed some caution about joining Google's alliance. "We were interested in being part of the Google ecosystem, but we were interested in getting more clarity on what this program entails," said Rich Green, executive vice president of Sun's software effort.
Asked if there's any possibility of unifying the Android work with the Java Community Process, Horowitz said, "It's an open alliance. We can welcome anybody who wants to join."
Android uptake
Techno-politics aside, Google clearly has grand aspirations for Android. And it wants outsiders to be part of the development.
In stark contrast to Apple, which plans to release a software developer for its iPhone in February, half a year after the product began shipping, Google is releasing its SDK about a year before any Android phones ship.
"We're making it available pretty early--early enough that we can get feedback at a point where we can still impact the direction of the software," Horowitz said. "People tend not to ship SDKs until the products are done. In this case we thought the platform was such an important part that we wanted to get that out early."
Of course, there's another advantage to releasing an SDK early: the open-source community can help build interesting applications that give Android phones more than just the basic set of programs.
So far, so good, said Horowitz, pointing to "unprecedented" interest in Android compared to other projects hosted at Google's open-source projects site, code.google.com. "It is above and beyond anything Google has seen to date," Horowitz said.
A diagram of the inner workings of Google's Android software for mobile phones.
(Credit: Google)Among details in the SDK:
It makes mention of support for GSM mobile phone networks, the leading technology for mobile phone networks, but is silent on support for the top rival, Qualcomm's CDMA. That will come, though, Horowitz said, pointing to CDMA allies such as Qualcomm that are members of OHA. "It's clearly something on the roadmap, but we're not talking about specific support for it at this time," he said.
OHA supports touch-screen technology, but Horowitz declined to comment on support for multitouch, a notable iPhone ability that opens up user-interface possibilities, beyond saying multitouch support isn't in the first version of the Android SDK.
Google will release a new version of the Android SDK once feedback from programmers starts coming in. "We're committed to a regular release cycle," Horowitz said.
Software should run quickly on mid-range phone hardware such as those with a 200MHz ARM 9 processor. "One of the key goals of the project was to ensure we can run on a broad range of phones that don't require a high-end processor at all," Horowitz said. "When we bring it to higher-performance devices, it's just going to scream."
The SDK so far permits development only of software that runs on the Java foundation, not natively on the hardware itself. "We are aware of the interest in native application development, but we having nothing to comment on right now," Horowitz said. But performance shouldn't be an issue: "Our system is designed to take full advantage of native code in performance-critical areas and expose this functionality through our framework APIs."
Marguerite Reardon and Dawn Kawamoto contributed to this report.
Correction: An earlier version of this blog misstated Google's connection to the JCP. Google is a member of the Java Community Process, though not for the Java Mobile Edition version to which the Android software is most closely related.
The Google Android logo
(Credit: Google)Google on Monday released programming tools for its Android mobile-phone alliance for download, giving developers the ability to start writing software for phones due to start shipping in 2008 and $10 million in prizes to lure them.
The software development kit (SDK), an open-source package available for download for Windows, Linux, and Mac OS X machines, shows that Java is indeed the programming language for software running on the Linux-based phones.
Accompanying the SDK is a raft of details that wasn't available when Google and its partners announced the Open Handset Alliance a week ago. The Android software includes the Google-created Dalvik virtual machine for running Java programs, a browser based on the WebKit engine, and support for many media and image file formats. (Note: I clarified that the browser is only based on the WebKit engine.)
And hardware abilities permitting, it also supports wireless communications using GSM mobile-phone technology, 3G, Edge, 802.11 Wi-Fi networks. Conspicuously missing from the list is the widely used CDMA mobile-phone technology developed by Qualcomm.
To jump-start the Android programming effort, Google is offering $10 million total in prizes, each ranging from $25,000 to $275,000, to programmers picked by a panel of judges.
A diagram of the inner workings of Google's Android software for mobile phones.
(Credit: Google)Android programmers can use the open-source Eclipse programming tool, founded by IBM and now supported by many companies, along with an Android plug-in for Eclipse.
The SDK includes an emulator so programmers can write software even without phone hardware. However, as programmer Jason Chen cautions on his blog, "The look and feel of the user interface in the emulator is a placeholder for a final version that is under development."
The SDK also describes application programming interfaces (APIs) that enable programmers to take advantage of underlying support for location-based services, video and audio streaming and playback, and 3D graphics. However, support for Bluetooth and 802.11 wireless networking APIs isn't yet available, though they'll be added to the SDK, the site said.
Google mentions support for two APIs for using Google services, too: Google Maps for displaying maps and XMPP for device-to-device communication tasks such as playing checkers.
Correction 10:05 a.m. PST: This blog initially misstated when Red Hat made the announcement. It was Thursday.
Red Hat is working on gaining the Common Criteria certification for its JBoss Enterprise Application Platform for running Java software, the company announced Thursday.
Such certification is a significant step in gaining acceptance among governmental and international customers. The Linux seller is seeking Evaluation Assurance Level 2 across multiple operating systems, not just Red Hat Enterprise Linux, a company representative said.
RHEL 5, the company's main product, currently has EAL 4+ certification, a higher level, on both Hewlett-Packard and IBM servers, and SGI has EAL 3+ and is seeking 4+ certification.
Red Hat has been getting more active in the Java arena. It acquired the JBoss software in 2006 for running Java Enterprise Edition software on servers, though the company has had trouble meeting its JBoss financial targets. And Red Hat announced a partnership with Java creator Sun Microsystems on Monday under which it will contribute to the core Java Standard Edition software project.
Sun Microsystems' move to make its core Java software a true open-source project may still be a project in its early stages, but on Monday the effort produced some concrete results: a partnership with long-time holdout Red Hat.
The top Linux seller announced Monday that it's signed an OpenJDK Community agreement, a move that gives it access to the Sun compatibility kit that can be used to ensure a Java software foundation meets requirements to properly run Java software. Although Java has caught on widely in the server market--Red Hat's core customer base--Red Hat shied away from tight Java ties and sometimes criticized Sun for its earlier semi-proprietary Java ways.
Now they companies are best of pals. "Red Hat fully supports Sun's courageous decision to open source Java technology. After more than 10 years of continuous leadership, the Java technology ecosystem will enter an era of accelerated innovation and benefit from extreme pervasiveness on a wide range of environments," said Sacha Labourey, chief technology officer of Red Hat's JBoss division, which sells support for Java server software.
I know, I know, it sounds like the usual sort of corporate platitude you can read in countless news releases. But its sentiment carries stronger weight and authority after you compare it to this 2004 statement from Red Hat's then-CTO, Michael Tiemann (disclosure: Tiemann is now a blogger in the CNET blog network, too), directed at Jonathan Schwartz, now Sun chief executive: "You say that you love the open-source community, but how much? If you love the open-source community, you'd open source Java. If you won't open source Java, it means you don't love us, or at least you don't trust us. Why, then, should we trust you?"
The JBoss group, which Red Hat acquired in 2006, had already participated in Sun's Java development process, but only for the Java Enterprise Edition software for servers. Now the agreement extends to Java Standard Edition, which contains the core "runtime" software to actually execute Java programs. Through the deal, Red Hat will eventually deliver its own Java runtime software, the company said.
"By signing the contributor agreement, we, Red Hat and JBoss, now have the mechanism in place whereby our engineers can properly work on a wide range of Sun-sponsored open-source projects, including OpenJDK," said Shaun Connolly, vice president of product management for JBoss.
Forgive me if I appear a little skeptical here about Google's Open Handset Alliance. By my count, it's the fifth consortium so far to attempt to craft something useful for mobile phones out of Linux and open-source software.
OHA has by far the highest profile, it's got the most persuasive list of members, and its timing is the best. What's not yet clear is whether the "Android" work of Google and its allies will unify or further fragment work in the area.
Rallying programmers behind a unified effort could help determine whether this effort will accomplish more than the Linux Phone Standard (Lips) Forum, the Open Source Developer Labs' Mobile Linux Initiative, the Consumer Electronics Linux Forum (CELF), and most recently, the LiMo Foundation begun in 2006. Related efforts one step removed include Intel's Moblin and, Nokia's Maemo, and any number of other open-source projects.
Just as with PCs, somebody has to write a "stack" of software spanning from basic operating system functions all the way through communication utilities, user interfaces and Web browsers. Unlike PCs so far, though, the mobile phone market has suffered from a profusion of incompatible software foundations, despite some efforts to use Linux and Java to bring some common ground.
... Read more
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.
Sun Vice President James Gosling speaks in May at the JavaOne conference in San Francisco.
(Credit: James Martin/CNET News.com)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.
Atop Update N comes JavaFX Script. This is a new scripting language geared specifically for fancy user interface actions such as transparency and other effects that are difficult with the prevailing Web browser scripting language, JavaScript (which contrary to what its name may imply isn't based on Java). JavaFX Script is geared toward use more by design types than engineers, Gosling said.
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.)
But much of the rich Internet application action is happening with software such as Ajax, the Adobe Integrated Runtime (nee Apollo) and Microsoft's Silverlight and Google Gears.
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."
In a development that could be anywhere interesting, sleep-inducing or potentially even fictitious, Sun Microsystems Chairman Scott McNealy said Samsung is building a Java phone that will have better features and lower cost than Apple's iPhone.
Sun software chief Rich Green holds a Java FX Mobile-powered phone from FIC at the JavaOne conference in May.
(Credit: Sun Microsystems)At least, that's what the Associated Press story about a report in the Korean newspaper JoongAng Ilbo.
Java is open-source software that at least in principle lets the same program run without having to be modified for different hardware. It's already widely used on mobile phones, including models from Samsung. What could make this story more interesting is if Samsung is embracing Sun's Java FX Mobile software, which Sun obtained through its acquisition of start-up SavaJe.
Typical phones today use the lightweight Java ME, stripped down for phones' anemic processing abilities, but Java FX Mobile is a variant of the desktop Java SE version. Adapting desktop software for increasingly powerful mobile devices is the strategy that Apple embraced with the iPhone and that Intel and Ubuntu sponsor Canonical are adopting with mobile Linux.
Of course, it all could amount to nothing, too, and given that whatever McNealy said likely was translated at least twice, that possibility shouldn't be ruled out. The AP quoted a Samsung spokeswoman Lee Soo-jeong as saying the two companies have talked but that "no decision has been made regarding co-development of the Java phone."
For its part, Sun wouldn't comment in detail on the situation. "Sun has a longstanding relationship with Samsung, working for years on Java-enabled phones and devices. Beyond that we have no comment about future plans and products," spokesman Russ Castronovo said.
- prev
- 1
- next





