Welcome!

Open Source Authors: Paul Miller, Jeremy Geelan, Elizabeth White, Mark R. Hinkle, RealWire News Distribution

Related Topics: SYS-CON INDIA, Java, Open Source

SYS-CON INDIA: Article

Has Sun Waited Too Long To Open-Source Its Java Implementations?

"Microsoft's position has improved and now there's Zend"

The open-sourcing of Java began on Monday - at six million lines of code, it will be one of the biggest open source contributions ever, representing a shift in thinking by Sun. But has it waited too long to make the move? Microsoft's position has improved and now there's Zend.

Plus it will take until the first half of '07 for all of the Java code that's going be open sourced to be open sourced. Naturally, there's always the chance that it will be forked. Sun's counting on any incompatible forks not gaining any traction.

Actually Sun is not open-sourcing the Java programming language or the platform APIs or Java specifications. It's open sourcing its implementation of the Java Standard Edition (Java SE) and a buildable implementation of Java Micro Edition (Java ME), stuff that comes from an early build of JDK 7, under the General Public License (GPL), the open source touchstone that Sun never much liked before.

It's using GPL 2.0, the open source license favored by Linux creator Linus Torvalds, and not the GPL 3.0 currently in rewrite that Torvalds abhors.

Sun said it's using the GPL - which it knows won't make everybody happy - because it figures the GPL would result in the "greatest incremental growth to the Java market." Sun wants to get Java included in the LAMP stack and bundled with Linux distributions.

Specifically, it's talking about Java HotSpot, the javac Java compiler and JavaHelp. It said a buildable JDK would be available in Q1.

HotSpot is Sun's implementation of the JVM, a core component of the Java Runtime Environment that translates Java code to the different operating systems and chip architectures, and javac generates the proper bytecode for execution. JavaHelp is the online documentation that goes along with the JDK.

Sun says it's releasing the class libraries and the parts of the virtual machine that expose public APIs under the GPLv2 Classpath exception developed by the Free Software Foundation that will let any application, GPL or otherwise, link to the library without that application having to be open-sourced.

Like the Lesser GPL (LGPL), it basically breaks the endless open source cycle.

Sun says the technology it's releasing will let developers port the JVM to new hardware architectures and operating systems, fix bugs, and contribute new SE features through a new so-called OpenJDK Project. Sun said it would evolve the existing JDK Community into OpenJDK, though its governance model hasn't been fully worked out yet.

However the model evolves, Sun will decide what OpenJDK contributions to take. It expects to have non-Sun committers. Sun will also police the use of the Java brand and logo.

The Java ME code is accessible through Java.net along with a testing and compatibility framework. Sun says it will release the framework for the Java Device Test Suite later this year. Initially, it's just the runtime for mass-market handsets. Sun promises to release the runtime for devices like smartphones and set-top boxes at some point.

Sun says it's open-sourcing ME to "accelerate the development and evolution of the platform, reduce fragmentation, and drive down development costs."

Sun adds that it's going to open source the Java Platform Enterprise Edition (Java EE) under the GPL. Java EE has been available for the last year under the company's own CCDL license via Project Glassfish, which will be released under a dual-license model in the first quarter, both the GPLv2 with the Classpath exception and the existing GPL-grudging CDDL.

Sun claims 3.8 billion Java-enabled devices, a number that stems heavily from phones and smart cards. Phones account for something like 1.5 billion deployments.

There's encumbered code in Java - particularly in the 2D graphics - like the color management library, font rasterizer and graphics rasterizer - that Sun intends to continue to use in commercial releases until it's replaced with fully functional open source alternatives. It appears that the encumbrances are holding up the release of the whole JDK.

There won't be any binaries before next spring and then Sun's pretty sure they'll be encumbered. It's working out a special GPL v2 exception with the Free Software Foundation, keepers of the GPL flame, and the Software Freedom Law Center (SFLC) that will allow downstream redistribution of encumbered binaries and a JDK built from the GPL'd sources and the encumbered binaries.

Sun will continue to offer binary bundles for the JDK and JRE under its Binary Code License (BCL). It says it will offer Distribution License for Java (DLJ) bundles for Linux and OpenSolaris.

The ME code is also encumbered and Sun says what's open-sourced won't include support for specific phone hardware, graphics engine, sound engine and some other stuff. It says it's trying to negotiate with the IP owners. Sun says it can use other licenses for the open source code base because it owns the copyright on the code base and it's inherent in copyright law.

When it can, Sun intends to open-source both JDK 6 and JDK 7, the first a stable release and the other a platform to innovate on.

Sun will only open some of its test suites, but "not all and not all at once." It says it will make as much of its regression and unit-test suite available as "practical," and some of the functional tests "eventually." It says some tests have dependencies on internal test frameworks, test harnesses or environments that aren't available outside of Sun.

It will create a portal to work on testing with the community and have Technology Compatibility Kits (TCKs) for compliance. Sun, however, hasn't figured out how to make the TCKs accessible.

Sun's source control management and bug tracking systems are also proprietary and off-limits.

Developers will be asked to sign a Sun Contribution Agreement (SCA) that grants Sun joint ownership in copyright and a patent license to their contributions.

Sun says sharing copyrights protects the Java Community, enabling Sun to offer the Java platform as a whole under both open source and commercial licenses and to know where every line comes from in case of future litigation.

Meanwhile, the Apache Software Foundation intends to keep on trucking and produce the open source version of Java started 18 months ago as Project Harmony. It should have something to show by the middle of next year.

See www.sun.com/opensource/java.

Copyright (c) Client Server News.

More Stories By Open Source News

Enterprise Open Source News Desk trawls the fast-growing world of Professional Open Source for business-relevant items of news, opinion, and insight.

Comments (8) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
JDJ News Desk 11/19/06 10:25:14 PM EST

Sun says it's releasing the class libraries and the parts of the virtual machine that expose public APIs under the GPLv2 Classpath exception developed by the Free Software Foundation that will let any application, GPL or otherwise, link to the library without that application having to be open-sourced.

RevMike 11/19/06 08:41:11 AM EST

Perhaps the best news that can come from this is that the three major platforms can potentially converge. Currently Sun, IBM, and BEA all have their own Java VMs. While compatibility is remarkably good for a specific version, each has their own strengths and weaknesses, performance wise. Each also utilize non-compatible tuning parameters and such.

A unified code base can potentially reduce these differences. We might have a single JVM that incorporates the best performance features of all three products, and can be tuned in a consistent way.

RevMike 11/19/06 08:41:02 AM EST

Perhaps the best news that can come from this is that the three major platforms can potentially converge. Currently Sun, IBM, and BEA all have their own Java VMs. While compatibility is remarkably good for a specific version, each has their own strengths and weaknesses, performance wise. Each also utilize non-compatible tuning parameters and such.

A unified code base can potentially reduce these differences. We might have a single JVM that incorporates the best performance features of all three products, and can be tuned in a consistent way.

AIXtreme 11/19/06 08:38:58 AM EST

I would like to know which parts of Java aren't being open-sourced. I do hope they aren't critical.

Having shunned away from Java due to its license for years, I look forward to another good free-as-in-speech tool under my belt.

rca66 11/19/06 08:36:42 AM EST

Just to make it clear: Java is going to have the GPL with the Classpath-exception, which explicitely allows to create closed source applications when using the standard libraries.

See Gosling's blog:
http://blogs.sun.com/jag/

and here you'll find the mentioned exception:
http://www.gnu.org/software/classpath/license.html.

Rik Sweeney 11/19/06 08:35:10 AM EST

My only worry is is that we'll see applications built on custom versions of Java that aren't compatible with each other or have fixed bugs differently to how someone else has fixed them.

Hopefully Ubuntu, Debian and Fedora will just take the current version of Java, compile it with all the bugs still intact (I'm not kidding!!) and stick it in the repositories.

Tpenta 11/19/06 08:33:32 AM EST

The class libraries have the linking exception.

Tp.

Argon 11/19/06 08:32:58 AM EST

Despite all the rumours, I never really believed Sun would release Java under GPL instead of CDDL. Hats off to Sun.

I assume the class libraries are also under GPL. The question I now have is, have they explicitly given a GPL linking exception for the class libraries to avoid GPL tainting Java code? Rather than implicitly saying there's no problem, I hope they make an explicit exception similar to the one given for FSF's libgcc or libstdc++.