Sun has talked a lot about putting Java into an open-source license. Now it’s ready to move. The company is very close to announcing that it will put the mobile and standard editions of the Java platform into the GNU General Public License, with the Java Enterprise Edition and GlassFish reference implementation (currently open-sourced under Sun’s Common Development and Distribution License, or CDDL) to follow, several industry sources said.
A very brave move, no less. Exciting times we live in, eh?
Yes, exciting indeed! Hell has indeed frozen over, I’ve seen no less than 3 swine hovering in the sky and Thom has yet to reply to some bit of flamebait this week!
PS: love yah Thom
I would prefer LGPL.
It’s going to be dual licensed.
Why? Are you planning on making a commercial version of Java? If you do then you’ll still need to pay to get the license to call your versions “Java”.
Or is this just ideological?
Bacause right now I don’t have to pay or open source what I do, with this, now I have to chose to pay or open source,so I’ll just give the finger to java and chose something else.
Edited 2006-11-09 18:31
Hi,
but your programs don’t do any changes in the java code, I assume?
You are only using java for executing your programs. So you don’t have to open any of your java programs. Don’t confuse this.
@Krok: Exciting times, indeed!
Greetings
Mike
Waith, so you mean,to make a java program I don’t need java libraries?
Hi,
you are right that linking with GPL software normally is a problem. But maybe they do it the same way as GNU classpath does it:
http://en.wikipedia.org/wiki/GPL_linking_exception
They use the GPL with a linking exception.
With the CDDL there won’t be any linking problem.
But this is all speculation [as usual] We should wait the few days till sun announces the official license.
Greetings
Mike
Before people go off on one of those folk-tale GPL interpretation tangents of linking and running, I’d like to point out that the linking exception in GNU Classpath was introduced to make it possible to create binaries that would be burned into roms, which would include the class library verbatim, and be compiled ahead of time to native code, and statically linked.
I hope it’s evident to the casual reader that that mode of deployment and execution (ahead-of-time compilation of native binaries into static images of ROM-able code) has nothing to do with the way Sun’s JVM works.
As far as the talk about linking goes, all the GPL talks about are derivative works. It’s not plausible that this source code fragment:
System.out.println(“HelloWorld”);
is derivative of a particular implementation of java.lang.Object, and therefore would have to fall under its license.
Going further, when the fragment above is compiled into bytecode, its bit stream is exactly the same, regardless of the implementation details (and the license) of the java.lang.Object, so it’s not plausible that the resulting bytecode stream would be a derivative work of a particular java.lang.Object (and have to be licensed under its terms), as the resulting byte code is not based on a particular instance of Object, and does not incorporate any copyrightable parts of it, afaict.
Afaik, Sun could happily use the plain GPL without exceptions in their case. Whether they actually do it, or not, I’d expect to see something that says that ‘userland code’ is not derivative, similarly to how that’s commonly understood to hold with the GPLd Linux kernel.[1]
hope this helps,
dalibor topic
[1] Which doesn’t actually have any explicit linking exception in the license.
Let me rephrase this in a short way, because it’s a point that is overlooked so often: Code that works only by linking to GPL’ed code need *NOT* be distributed under the GPL. It is purely the author’s choice which license to use for his own code. It is only when the compiled whole, actually including the GPL’ed code, is distributed, that the distributor has to license the whole under the GPL. As long as the GPL’ed code is not distributed, you can’t infringe the author’s copyright, thus the GPL cannot force you to do anything.
This is the same point by which NVidia’s binary kernel module is legal: Creating a non-GPL’ed kernel module is possible. Distributing a derived work of the kernel including it isn’t.
Disclaimer: IANAL.
> Going further, when the fragment above is compiled
> into bytecode, its bit stream is exactly the same,
> regardless of the implementation details (and the
> license) of the java.lang.Object
Actually, with Java this isn’t true. Minor parts *are* linked at compile time (overloaded method dispatch; primitive-typed constants; …). But I don’t think this would be enough to sue anyone for copyright infringement.
Well, linking as a phrase is overrated since it doesn’t actually occur in the GPL. What matters is whether a work is a derivative work of a GPLd work, which can happen in different ways, for example through inclusion of fragments of a GPLd work, or by basing a work on a GPLd work.[1]
The point here is that it’s not very plausible that java code using the standard libraries is, in any either source code or bytecode form, is derivative of a particular implementation, unless it either includes copyrightable fragments of it, or is actually based on it. See the Linux kernel for how that works in practice, without the need for exceptions.
As far as technical aspects of the compilation of Java programs go, I don’t think that the parts that end up in the bytecode are copyrightable: as long as the generated bytecode is mandated by the specifications, it’s a case of scenes a faire[2]. If there were copyrightable fragments of code included in the generated bytecode, or the generated bytecode was clearly based on a specific, GPLd class library, there would be a need for exceptions. But the former is highly unlikely per current Java Language Specification, and the latter is highly unlikely per constraints of binary compatibility and WORA.
But in any case, I’m sure there will be a FAQ, if they actually go with GPL, rather than CDDL.
[2] IANAL. Whoever takes legal advice from unknown people on the internet gets what they pay for. If you want to know for sure, wait until Sun actually says what license they’ll pick, and how it will work. This discussion is about a hypothetical condition.
[1] Like, say, I convert your GPLd C code to Java. It’d still have to be GPLd. Or if your code is a unique, GPLd library, so that my code couldn’t exist/work without being based on your code. Etc.
The chances that they use GPL for the java class library are close to zero. It would be utterly insane.
I am thinking the same.
Personally I don’t mind the GPL, but how does linking to GPL’ed Java libraries make your program _not_ GPL?
Sounds like they need to triple license Java – GPL for those that want it, LGPL for those who want GPL’ed Java, and whatever other licence they are licensing it under (CDDL).
What licence were they using before, if they are CDDL’ing all the versions they aren’t GPL’ing?
I think a triple licensing scheme would be a wise choice. Personally I’m perfectly fine with the GPL but I can understand those who aren’t.
When it comes to licenses I’m getting increasingly confused.
Question, IANAL and not intimate with the GPL, so I’m hoping someone can answer this.
If all the Java libraries went GPL, would that mean that any code extending an existing Java class (let’s use an extreme case such as Object), would that mean that any extending class would be forced to go GPL?
Edited 2006-11-09 20:36
Well, you can’t really extend a class without having access to it, so you would need to link to the class you’re going to extend. Soooo… I think it would have to be GPL though it might depend on how things are implemented.
But personally I can’t see why it wouldn’t be GPL. You might want to send Sun a mail.
I think that is why there is the talk about dual-licensing here.
Also, license change is not retroactive, so existing apps using existing (non-GPL) Java would continue as-is.
To be frank, I could care less about Java and although I run a couple of old Suns as a hobby, from a “strategic” standpoint I couldn’t usually care less if they went under tomorrow. But I’m grateful to them for open sourcing even one or two “versions” of Java, especially if that buttresses the GPL, and especially now.
this news is based on a rumor. So, it is early to say it will be GPL. i think most likely there will be double licensing scheme. Maybe GPL (or similar) for sun virtual machine, CDDL for Sun JDK library. We will see.
If this is what happens, I would like to congratulate Sun and thank them.
I find these licensing news quite confusing. The only thing important for me is if and how it affects people who use Sun’s Java SDK to develop applications. I’m not sure if the article covers this topic specifically. Maybe someone can help me here:
As I understand it, I may currently use Sun’s Java SDK free of charge to develop Java applications that run under Sun’s JRE. Such applications may be distributed under any license that I choose – at least for Sun Microsystems it doesn’t matter if they are free, open-source, proprietary, freeware, shareware, cheap, expensive or whatever. (Please correct me if I’m wrong.)
Assuming everything happens as outlined in the article: Will the aforementioned paragraph still be true?
Thanks for any clarification,
Def
There is no rational reason for Sun to prohibit you from choosing whatever license you like for your own works. The GPL couldn’t do that, anyway, so if the article is correct, you’d be able to continue as before.
I guess they’d publish a FAQ or something like that to make sure that people understand that the big bad GPL is not going to eat them alive, or whatever mean things the GPL is supposed to do.
Isn’t Jave EE derived from Java SE? In that case, are they allowed to license SE under GPL and EE under something else, like the article claims that they plan?
Why not? After all, they are the copyright owners.
If Sun Java comes out in GPL it is directly due to the work from FSF on the gcj. What happens is that companies start getting scared when they realize that their are forces in effect that can replace them. For example. The community begins building a free java clone. Sure its not as good at the moment but you know that it scares the hell out of Sun that it MAY someday be almost as good. Then Sun Java is just for all of that extra fancy stuff that people don’t really use anyway. Open source stuff is more deployable. I think that companies will start seeing more and more that duel licensing their stuff is benefial since it effectively limits the amount of money that a competitor could make off of the GPL edition (Sure they can make a little money but they can’t make huge money) while ensuring that you get community support and wide deployement in all kinds of interesting environments.
On this note I wish that gnash the GNU flash player would take off a little bit to put some pressure on Adobe. In a way I feel a bit bad for the developers since it is unlikely that Adobe would ever let gnash people finish before they release an open source (probably not entirely free) browser plugin.
If Sun Java comes out in GPL it is directly due to the work from FSF on the gcj
Totally wrong, gcj is years behind Java not even supporting templates and who uses gjc btw?
I mean, is not even compatible with Jamby (The Qt java bindings).
so, don’t overrate the unoverrateable.
Totally wrong, gcj is years behind Java not even supporting templates and who uses gjc btw?
Java? Templates?
Anyways, Classpath is almost 99% finished now and while I am not sure about Qt-Jambi, it does run Eclipse.
Please…..
People have been throwing the phrase “Classpath has been 90+% complete” about for the last 3 years. Even so, that 99% compatibility figure only relates to Java 1.4, which is well over 4 years old. Most people are using Java 1.5, and 1.6 is around the corner.
Classpath is a nice project, and I have great respect for Dalibor and the team behind it. However, do not delude yourself into thinking that Classpath poses a “threat” to the official Java (i.e. those VMs that have to pass Sun’s TCK).
p.s. Java has had templates for over 2 years, since the release of Java 1.5.
p.s. Java has had templates for over 2 years, since the release of Java 1.5.
You mean generics 😉
Touché.
p.s. Java has had templates for over 2 years, since the release of Java 1.5.
You mean Generics?
Classpath is a nice project, and I have great respect for Dalibor and the team behind it. However, do not delude yourself into thinking that Classpath poses a “threat” to the official Java (i.e. those VMs that have to pass Sun’s TCK).
First of all, I never suggested that Classpath is posing a threat to the Sun JRE. However, it should be noted that back when KDE started the Harmony project, Trolltech didn’t wait until the release of a fully compatible clone to release Qt under the GPL.
Personally, I think the threats posed by .Net and LAMP/ROR/etc. probably play a bigger role in this decision. The prospect of making Java ubiquitous on linux and BSDs (which is currently only hindered by the license) is probably very attractive. Open sourcing the Java will also push Java to become the language of choice for open source development, on part with C.
Edited 2006-11-09 20:23
Yup. Some people seem to like to think about all that as a black and white, us vs. them thing. It doesn’t really work that way, although it’s an entertaining myth.
In a certain sense, Classpath et. al. have prepared the field for Sun, by showing that there is both a demand for open source Java, and an ecosystem of people and companies willing to work on making it happen. They’ve worked on getting Java in one form or another into distributions, and so on.
But for all I know, Sun has never felt threatened through GNU Classpath. I’d be seriously puzzled if they did, anyway, as that was not the intention. The plan was to create free runtimes for Java, and get Sun to join in the fun, since they are doing some excellent work in that area.
Edit: Oh, and thanks!
Edited 2006-11-09 20:39
If it’s unoverrateable he can’t overrate it!
“Totally wrong, gcj is years behind Java not even supporting templates”
Then if Java come with GPL, then code can be easy move to GCJ. :]
“In a way I feel a bit bad for the developers since it is unlikely that Adobe would ever let gnash people finish before they release an open source (probably not entirely free) browser plugin.”
First, please excuse the nitpicking, but I think it’s worth clarifying that “Free software” and “Open Source” (not to be confused with “shared source”)are generally considered as two words for the same concept, only having different connotations. Except very rare exceptions,a licence is open source iff it’s free sofware:
http://www.opensource.org/docs/definition.php
http://www.catb.org/~esr/open-source.html
http://www.gnu.org/philosophy/free-software-for-freedom.html
Besides, I’d bet Gnash developers know it and it’s ok for them, since in any case their work was very useful: either directly or indirectly. This of Gnome and the Qt libraries. The point was not necessarily to replace KDE, but to show that it could be replaced.
Yep, one only has to look at the carnage GCC has left in its wake among commercial compilers.
If Sun Java comes out in GPL it is directly due to the work from FSF on the gcj
Bzzzzzt, wrong!
If Sun licenses Java under the GPLv2 (remember that GPLv3 is nowhere near ready yet), then it is going to be because Sun’s management and legal department were able to resolve all (or at least, enough) of their concerns about various issues.
GCJ isn’t a real competitor to Sun’s Java. Especially not when you look at the businesses which have built themselves around Java such as IBM and Bea.
Don’t forget, we’re talking about a corporation here, not a bunch of programmers who are letting their political bias determine engineering response.
And clearly, given today’s news http://news.com.com/Sun+picks+GPL+license+for+Java+code/2100-7344_3… whatever concerns Sun might have had re GPL v2 have been resolved.
The thing about it is that unless Sun actually accepts patches the point of the GPL wont mean much. Sure someone could fork Java if they didn’t like the way Sun is going but that will just end up with another Microsoft Java at best, or completely unused at worst.
It was annoying dealing with applets that worked with MS java, or Sun java, but not both. Don’t need to go threw that again
Sun already accepts patches (external contributions) to Java. All the serious open source projects have very strict patch-contribution policies. This has nothing to do with GPL either. Plus, language enchancements, core library changes will still be governed by JCP process, if somebody goes out of it (as API-language change) , it will not be called “Java”.
Dual licensing has worked spectacularly for Trolltech and their QT GUI library.
There are great closed source projects created with the QT commercial version, where the software creator paid a QT license to Trolletch – these include Adobe Photoshop, Google Earth, and JD Edwards ERP software.
Then, of course, there are great open source projects using the GPL’d version of QT, the biggest of which is, of course KDE.
With Sun Java being available as both GPL and commercial license, we can get the best of all worlds. With the commercial license, BEA Weblogic, IBM Websphere, and many commercial projects based on Java, can still put out their commercial stuff, and pay for a license from Sun (who thoroughly deserves the revenue).
Then all the open source software based on Java can use the GPL’s version. And being GPL will only accelerate open source Java based software, particularly on Linux.
Java on Linux is of particular interest. The two can really help each other out. The easier it is to mix the two great technologies, and encourage developers to mingle the two, and encourage end users to use both together, the better for both technologies. Heck, maybe even desktop Java on Linux, perhaps either through QT-Jambi or through GTK-Java, will start to take off. Either choice would be vastly superior options to Mono, a huge potential Microsoft IP trap.
And it’s even interesting that Sun and Canonical (Ubuntu) are really cozying up, getting Ubuntu certified on Sun servers, and getting Glassfish on Ubuntu.
Then add to this the fact that Oracle has huge Java based offerings, and is making a huge Linux play, and of course there is IBM and Websphere and Eclipse (and IBM’s huge Linux push), and then making Java and Linux license compatible, and then you have a tremendous one-two punch, and MS takes a big blow to the gut and the jaw.
Gotta like it.
Is not that awesome to Qt when mayor Linux distributor chose to ditch Qt/KDE as the main Desktop thanks to that dual licensing.
“Is not that awesome to Qt when mayor Linux distributor chose to ditch Qt/KDE as the main Desktop thanks to that dual licensing.”
Trolltech has been profitable and has increased revenue every year of it’s existence.
Also, QT has steadily improved, while Trolltech keeps it’s R&D down to a reasonable amount, due to the feedback from the open source world.
And with QT, you get complete documentation and tools, a result having a large set of in house, paid developers working on the product, due revenue from commercial licenses.
It’s a model that makes everyone happy.
I think Sun has made a good decision choosing GPL instead of the LGPL or any other less restrictive license. Core technology (like Java) which is the base for many other products should be “free” according to the GPL so nobody can fork its own parasitic proprietary fork of these base/core technology.
Also Mono (the free implementation of the .NET framework) is available under the GPL. So it was just a logical consequence to make also Java available under the GPL so it can compete with .NET/Mono (at least) on the same legality level.
mono who have many patent problem?
Chosing GPL for Java SE will make it incompatible with allready opensourced Java EE. It will also force all free java applications to use GPL compatible licenses, or to use a propriatory java version. E.g. this will be the case for commonly used free java software such as Apache Tomcat. Today this is not much of a problem as you can download a free as in bear java from Sun, but that may not be the case if Sun decides to dual license in the same way as Trolltech do with QT.
It will also force all free java applications to use GPL compatible licenses, or to use a propriatory java version.
If using a boilerplate GPL-license for the Java framework will have that effect on “userland” applications, Sun is surely bound to add linking exceptions to the standard GPL.
I don’t think Sun is willing to drastically alter the dynamics around Java. My guess is that Sun is going to keep the enduser and developer experience the same.