Graham discussed developer expectations concerning the Sun Community Source License (SCSL) and mentioned four concerns that came up from developers:
- Developers want to see the source code for Java.
- Developers want to be able to contribute source code back, easily. It can be done under the SCSL, and has happened, but the process is cumbersome.
- Developers need to be able to address bugs that affect them locally without needing to wait for them to be addressed in the JVM.
- Developers are interested in the compatibility matrix, to preserve Java's "Write Once, Run Anywhere" feature, which tends to highlight failures in corner cases (situations which don't affect the majority of Java users, but might still be visible.)
The JRL is a license meant to be "readable by human beings," as opposed to lawyers. It's only two pages long; it has the J2SE 5 source code already under its umbrella, and J2SE 6 builds are also done under the JRL. It is accompanied by a one-page contribution agreement that allows Sun to redistribute changes owned by code authors. At first glance, it seems fairly similar to the Mozilla Public License, while not being true open source.
One of the common concerns among many Java developers is that the SCSL was "viral," in that one couldn't work on some projects after having seen the Sun runtime source code. Graham Hamilton addressed the concern without conceding its accuracy:
As part of the JRL we included specific wording to grant what the lawyers call 'Residual Knowledge.' You aren't hurt by stuff that sticks in your head. (But at the same time stuff that sticks in your head doesn't give you any new rights under Sun's patents or copyrights!) We also plan to have similar wording in JDL and JIUL.It's still unclear if Sun plans to migrate older products or versions of products from the SCSL, but it's not going to be in use for the J2SE, which surely implies that it's not going to be in common use elsewhere.
The Java Distribution License is a commercial license for deployers of JVMs. As Graham says, "This is for full-scale commercial distribution." The text has not been made available yet; it's apparently due sometime in April or May 2005. Eduardo Pelegri-Llopart summarizes:
JDL grants the right to do changes and then distribute the result, provided the changes are compatible. Compatibility is defined through the specification and the Technology Compatibility Kit (TCK).The Java Internal Use License is meant to allow developers to fix JVM bugs that affect them locally. It relies on the "honor system" to prevent rogue JVMs to be released that do not pass the compatibility suite that formal JVM releases need to pass, and the intent is to allow developers to fix showstoppers for themselves, without waiting for a formal release from Sun (which can take some time, judging from the Bug Parade, and isn't guaranteed to give results.)
These are not open source licenses; Sun is not complying with an OSI-approved license (yet). However, as James Gosling says, they're "trying to create a collaborative atmosphere that's as close to open source as we can get without violating the needs of our other customers," including making sure that contributions made under one license aren't incompatible with the other licenses. Most developers should be covered by one of the three new licenses.
It will be very interesting to see what happens, especially with the unreleased JDL.