Sun wrestles with open-source Java

An open-source approach could strengthen Sun's software. But Sun is moving cautiously.

Stephen Shankland
Stephen Shankland principal writer
Stephen Shankland has been a reporter at CNET since 1998 and writes about processors, digital photography, AI, quantum computing, computer science, materials science, supercomputers, drones, browsers, 3D printing, USB, and new computing technology in general. He has a soft spot in his heart for standards groups and I/O interfaces. His first big scoop was about radioactive cat poop.
Expertise processors, semiconductors, web browsers, quantum computing, supercomputers, AI, 3D printing, drones, computer science, physics, programming, materials science, USB, UWB, Android, digital photography, science Credentials I've been covering the technology industry for 24 years and was a science writer for five years before that. I've got deep expertise in microprocessors, digital photography, computer hardware and software, internet standards, web technology, and other dee
6 min read
SAN FRANCISCO--Sun Microsystems is grappling with applying an open-source philosophy to its Java software as the company weighs risks and benefits over whether it should jump in further or not. But some experts are suggesting a middle ground.

Open-source software, best exemplified by the Linux operating system, holds the promise of fast innovation, widespread adoption and a lively developer community. But Sun, which invented and oversees Java, has expressed worries that making it open-source software could threaten its essential promise of compatibility.


What's new:
Under pressure from developers, Sun is weighing whether to get more open source in its approach to Java, despite the threat to the software's compatibility.

Bottom line:
Placing Java more firmly in the open-source realm could let allies and foes manipulate it for their own ends. Not doing so could push programmers toward Microsoft's .Net.

More stories on this topic

At a debate here at the JavaOne conference on Thursday, thousands gathered to hear Sun and others concerned with Java grapple with the issue. At stake is whether Java will become a full-fledged part of the open-source realm. If it does, that could let Java allies or foes manipulate it for their own ends. If it doesn't, open-source programmers might instead adopt rival .Net technology from Microsoft.

IBM, one of Sun's most powerful Java partners, reignited the smoldering question in an open letter in February that said Sun should release Java as open-source software. On Tuesday, Sun CEO Scott McNealy lashed back with an accusation that IBM has "Java envy" and should release its own intellectual property as open-source software.

Sun sees cautionary tales in Unix and Linux, software with loose controls that ended up as different variations headed in incompatible directions.

"I lived through the Unix wars," James Gosling, the prime Java creator and a Sun vice president, said at the debate. "I love Linux to bits, but they've got the same problem all over again. They've got all these distributions, and they're really close, but they're just different enough to be a pain in the butt."

Click here to Play

James Gosling, CTO of Developer Products, Sun

But others at the debate suggested Sun could find a way to embrace open-source without crippling Java. The software can be covered by open-source licenses, while other mechanisms can be used to ensure compatibility, said Larry Lessig, a Stanford law professor and a board member of the Electronic Frontier Foundation.

Lessig urged Sun to stay away from tinkering with existing open-source licenses to try to address the need for compatibility. "The law has tools--independent of open-source and free software licenses--for achieving compatibility without mucking up the free software licenses," he said.

There's pressure on the Java community to work out an accommodation, said Tim O'Reilly, the founder of O'Reilly Media. On Wednesday, Novell released version 1.0 of Mono, an open-source implementation of Microsoft's .Net software. In many regards, Mono is a clone of Java, which is software that lets a single program--written in the Java programming language--run on several computers.

"There is an elephant in the room--the fact that on Linux, the Mono project is implementing .Net, not Java. Microsoft does have a foot in the door," O'Reilly said.

If you love it, set it free?
Open-source software may be freely seen, modified and redistributed by anyone. Java, in contrast, is controlled by the Sun-led Java Community Process, and Java products must pass compatibility tests. Developers and groups that want to contribute software changes to Java join the JCP and sign a legal agreement saying they will abide by its procedures.

A key reason why Sun has expressed reluctance to make Java open source is compatibility--the guarantee that a Java program will run on any Java software foundation. It's not an academic concern: Sun fought for years with Microsoft after the software giant added extensions to Java that broke compatibility. If Java were open source, it also would permit people to create incompatible versions of that software.

At the same time, the open-source community is thriving, and much Java development--including the Tomcat and Geronimo projects for running Java server software--is taking place in the open-source realm.

Tomcat and Geronimo fall under the auspices of the Apache Software Foundation. That group negotiated a way to work with the JCP's standardization and to pass Java's Technology Compatibility Kit (TCK) tests without sacrificing its open-source designs. But Apache co-founder Brian Behlendorf said at the debate that he believed it's possible to mix the liberal open-source realm with the stricter compatibility tests.

Project organizers who want to claim compatibility and thereby use the Java trademark should need to pass the TCK, Behlendorf said. But that shouldn't shut down other avenues for development: "Creating derivative works that don't pass is a natural part of the open-source process," he said.

But Java's compatibility isn't perfect either, undermining the "write once, run anywhere" promise of Java, Behlendorf added. Software written for one company's Java foundation often has to be reworked for another's because they have different performance features. For example, one Java foundation might be slower at using the Java Message Service for sending messages from one system to another.

A step in the right direction
Behlendorf also suggested Sun could move closer to the open-source world by employing more open-source compatibility kits and reference implementations--the example, software that each extension to Java must have, to prove it works.

"We'd like to see more willingness on the part of the Java Community Process to allow for true open-source implementations of Core Java and other Java standards," Behlendorf said.

Open-source reference implementations and test kits would make it easier for organizations to create Java compatible software without joining the JCP.

Groovy, a programming language, is designed to enable the Java environment to run simpler instructions called scripts and will be a test for the success of open-source test kits and reference implementations, Behlendorf said. "We'll see what happens with Groovy," Behlendorf said. "It's a test case. Does this process result in higher quality?"

Gosling said Sun already has embraced some of the merits of open-source software, namely the ability for others to see its source code.

"The source is out there," Gosling said. However, Sun has included a provision to enforce compatibility. "There's a catch in the license: You can't redistribute it, if it's deviant," he said. That constraint is not present in the open-source realm.

In addition, Sun has released one chunk of Java code as open-source software with great fanfare: the Java 3D package, which handles three-dimensional geometrical and lighting display tasks.

Legal entanglements complicate the existing Java regime. Because access to the JCP is contingent on signing a legal participation agreement, there's a barrier to outsiders who, for example, want to suggest bug fixes--a barrier not present in the open-source realm. At the same time, open-source programmers have their own ways of dealing with some problems before the lawyers get involved, Behlendorf said.

"Defects in compatibility are seen as bugs to be fixed, rather than legal terms to be violated and litigated. It shifts the responsibility and the onus from the lawyers to the developers," he said.

The march of progress
The JCP has changed and will continue to change, said Rob Gingell, the Sun vice president who oversees that effort.

"Two years ago with Apache, we evolved the way Java was managed to make things more inclusive," Gingell said, forced to respond by the fact that Apache wanted to participate and help with developing the code for servers, but wasn't allowed to.

Now history is repeating itself, Gingell said. At dinner on Wednesday, Geronimo developers told Gingell of bugs they had discovered in a compatibility test kit that they were prohibited from fixing.

Sun believes it's made some progress, for example, in the case of "real-time" Java, a version of the software designed for machines that must respond to some events quickly. In 1999, several companies unhappy with Sun's rules began their own work on a real-time Java standard under the purview of a group called the J Consortium.

But the companies who had headed in their own direction "are thinking of joining the JCP," said Greg Bollella, a Sun senior staff engineer and a lead developer of real-time Java. "We're kind of healing the rift," he said.