Now that Java is going open source, what exactly does that mean? Developers and others worldwide say it opens up a world of possibilities.
New opportunities are presented on Linux as well as in the desktop and mobile spaces. Also, open-source developers who might have shied away from Java because of its commercial implications may now be tempted.
Sun unveiled plans to make Java open source under the GNU General Public License on 13 November. The move "has a huge impact on the open-source world," said Jeff Waugh, director of the Gnome Foundation, which is building a desktop environment for open-source and Unix systems.
There has been a wall between Java and open source as far as desktop applications go; this open sourcing means Java can spread on the desktop, said Waugh.
"Now that Java will be open source, it means it will be able to be included in any Linux distribution by default," Waugh said. "That allows us to create desktop applications in Java and distribute them with Linux," he said.
Java now can vie with C and C++ on the desktop, Waugh said. Additionally, mobile application development becomes more Java-friendly, he said.
"Given that Sun is also open-sourcing Java ME (Micro Edition), that allows Gnome developers to create Java applications that can work across the desktop and embedded devices," Waugh said.
Open-source Java also makes Java more competitive with Mono, which is an open-source implementation of Microsoft's .Net development platform. Java now becomes available to desktop developers as well as Mono, Waugh said.
"It will be interesting to see the lay of the land between Java and Mono," Waugh said.
Open-source Java may even prompt the death of some projects.
"It should make the Classpath project obsolete," said Casey Marshall, a contributor to the project. Classpath is a GNU effort to write a free version of Java class libraries.
"A lot of work that I've done could be relegated to the dustbin of history," Marshall said. But Marshall is not disappointed. "I don't think that personal glory is the ultimate goal of free software," he said. The Classpath project may be able to fill in some gaps on any class libraries that Sun cannot open because it does not own them, he added.
An open-source Java will bring new developers to the platform, said Dalibor Topic, a lead developer on the Kaffe project in Saarbrucken, Germany, which involves development of a free Java virtual machine.
"I think it greatly boosts the perception of Java as a managed runtime technology in circles that wouldn't have considered Java as easily, because of the 'Java trap'," Topic said. The Java trap has involved an issue in which distribution of free software containing Java was hindered by Java's previous licensing terms.
With open-source Java, developers who did not have the opportunity to look at the source code can now do so, noted Topic.
By having Java available under the GPL, "it makes it possible to take your virtual machine and port it and include code from other applications that are open source or under the GPL," Topic said. Code can be exchanged with other projects, he added.
Sun, however, may face an obstacle: its own culture, Topic said.
"I think an interesting challenge is going to be to make sure that the culture within Sun that exists around the code base works well to this whole process of opening up," Topic said. Governance of Java, when it comes to dealing with contributions, will also need to be worked out, he said.
A developer in Sao Paolo, Brazil, who is a former Sun employee, called the open-source move a great step and one that was a long time coming.
"I'm one of the people who have been asking for an open-source Java implementation for quite some time," said developer Bruno Souza , who heads up the SouJava Java user group in Sao Paolo. Open source, Souza said, "is the best way to develop software and is the best way for people to use software".
"It actually puts control of the software into the hands of the user," Souza said. If a vendor stops developing a piece of software, for instance, the community at large can take on that task in the open-source paradigm, he said.
The open-source move means Java developers and others can partner with each other and distribute the results instead of just collaborating with Sun, Souza said.
Souza listed a slew of potential projects that can be undertaken in the open-source world, including an improved font-rendering system and enhancements to the Swing UI. Java may also be extended to new platforms and even to video games, he added. Application time issues can be resolved in the Java virtual machine and Java tools and documentation can be translated to new languages.
An open-source community integrated with other efforts must rise up for Java to reach its potential, Souza emphasised. "People think once it's open sourced, then magically it gets better. That's not really true," he said.
Although the community has been able to look at Java source code, now they can do more innovations and modify the code, said analyst Michael Cote of RedMonk.
"It's pretty wide open at the moment," Cote said. "There's already several people who have been writing GPL versions for the VM (virtual machine)." He added that new virtual machines might offer better performance and be easier to set up.
A wider audience is now able to use and learn about Java, he said. "There's a lot of open-source developers who aren't interested in developing in commercial platforms," Cote said. The GPL brings a lot of open-source advocates in the mix, he said.
As far as potential incompatibility issues arising from the open sourcing, developers will be motivated to ensure compatibility, Cote said. Compatibility is a main advantage of the platform, Cote emphasised.
"You don't have to have a bunch of if-then-else statements when you write to Java. You just write to Java," Cote said.
Still, the possibility of forking exists. But incompatible implementations could not use the Java brand, Cote said.
Despite the raves for the open-sourcing of Java in many corners, not everyone believes it will make that much of a difference. Some chatters on the Javalobby.org site have expressed opinions in this vein.
"I could care less if Java is open sourced or not. I'm waiting for the day I can wash my hands of the Java language altogether," said one chatter.
One poster griped about the design of Java: "Open sourcing Java won't clean the badly designed APIs."
But another chatter applauded the GPL choice: "This also opens the field for broader contributions. Man, am I excited."
In choosing the GPL option, Sun seeks to boost Java on the Linux platform, Sun's Rich Sands, community marketing manager for the Java Platform Standard Edition, concurred. Java can also be more easily spread in markets that prefer free, open-source software, such as educational institutions and in the developing world, he said.
"In looking at all those markets, we believe that the GPL is the best license to choose for facilitating adoption in those areas," Sands said.
Developers can also experiment with Java technologies such as the Java C compiler and Java HotSpot VM and port HotSpot to new platforms, Sands said.
"Developers can learn how a world-class JVM is built, experiment with garbage collection, synchronisation," and other components, Sands said.
Sun looks to monetise Java by selling subscriptions to its commercial releases of Java, which feature customer support. Java can also be used to expand sales of Sun workstations and servers.
Sun is not worried about incompatibility issues arising because the GPL requires that code changes be published. "It forces innovation into the open," Sands said.
"There's really no market for an incompatible version of Java," Sands said.