Sun Setting on Community Source License?

Officials at Sun Microsystems are putting the finishing touches on two new licenses that could spell the end of its Sun Community Source License (SCSL).

Late last year, the shepherd of the Java platform released the Java
Research License
(JRL), tailored to researchers and developers who wanted to experiment with changes to the Java 2, Standard Edition (J2SE)

Sometime in the next month or two, according to officials, the Java
Distribution License (JDL) and Java Internal Use License (JIUL) will make their way into the public, for use with J2SE source code, to complete the dissection of the SCSL.

Cutting up the SCSL into three separate licenses was a necessity for Sun officials, who saw developers and companies walking away from the license because of its daunting size and complexity, according to Graham Hamilton, a vice president on Sun’s Java platform team.

“[SCSL] was intended to be the wonderfully perfect license, it would cover all cases,” he said. “The problem was, it was all wrapped up in one enormous license and if you would hire battalions of lawyers, you would find that the license was great. The trouble is, most people don’t want to hire battalions of lawyers and find SCSL is too complicated, and there hasn’t been much adoption.”

Hamilton said you’ll still need a lawyer to read the JDL, which is the full commercial license for the Java platform, but it is much easier to interpret than the SCSL. The JDL is used by companies that want to do full-scale commercial deployments on the Java platform, which also involves the Java Compatibility Test to ensure its use is compatible with other Java implementations.

The JUIL, on the other hand, is a license for in-house use and modification of the J2SE source code. The license is geared particularly toward corporate developers who discover a bug in the source code and don’t have the time to wait for the Java community to release a bug fix in a future version.

Sun is taking a slight risk with the JUIL, in that licensees can completely fork the J2SE code for their own use, which runs the risk of breaking the platform’s compatibility. Hamilton said it’s not Sun’s job to police its base and institute draconian policies, so they are relying on the honor system to keep these licensees in check. Wise customers, he said,
will use the power of this license to make changes to the source code

Or, as James Gosling, Sun’s developer platforms group CTO and “father of Java” puts it, it gives licensees enough rope to hang themselves with, but there is a collaboration mechanism in place to ensure that when they do make a fork in the code for a bug fix, the Java community can be made aware of the bug and help.

He doesn’t expect many people to abuse the JUIL’s ability to break J2SE compatibility, mainly because people who have strayed significantly from the base platform in the past have lived to regret their decision.

“Primarily because when it comes to the next version or security update [of Java], for them to bring in those changes so that they can keep up becomes this repeating nightmare of engineering integration,” Gosling said, “where they find themselves doing nothing but integrating the updates that come from the rest of the world and trying to stitch together their own patches.”

Splitting the SCSL into three easy-to-digest licenses is an experiment of sorts for Sun. If it’s successful, Hamilton said, the company will look at expanding the JDL and JUIL into Java 2, Enterprise Edition (J2EE). J2EE 1.4.1 is currently available under the JRL.

He also said the final version of J2SE 6.0, code named Mustang, probably won’t be released under the SCSL license.

The three licenses will play a part in Sun’s new transparency mission for the Java platform. In the past, Hamilton said, developers have been unhappy with not being able to see the changes to the source code builds in developing technology such as Mustang.

Sun’s transparency efforts have been labeled Project Peabody, and will incorporate the three licenses to help give developers a peek into the J2SE source code. The JRL, JDL and JUIL will be used in the planned weekly drops of Mustang code on the community site. The JRL is already available for J2SE 5.0; JDL and JUIL will be added to the version when the licenses are finalized.

News Around the Web