Sun To Choose GPL For Open-Sourcing Java 407
An anonymous reader writes, "Sun is about to announce its plans for open-sourcing Java SE and ME, according to CRN — and they're going to use the GPL, not their own CDDL or another less-restrictive license."
w00t! (Score:2, Insightful)
Let someone clarify... (Score:5, Insightful)
Er... (Score:5, Insightful)
I mean, I know some people have a mad on against the GPL, but it ain't what you'd call restrictive. The only thing it does is mandate that all derivitve works also have to be GPLed.
Re:Er... (Score:5, Insightful)
Out of the most popular Free licenses, GPL probably is the most restrictive - many others don't have the restriction you mention.
Not to say that I don't think the GPL is a good choice for this.
Will this lead to better desktop Java? (Score:4, Insightful)
On the other hand, is this Sun's way of wiping their hands clean of everything besides their only Java moneymaker (J2EE)? They must realize that desktop Java has seen its day, and this might be a way to save some development resources while they continue to restructure in light of recurring market share losses.
This is a great move...even for the anti-GPL (Score:5, Insightful)
When you look at the other Java implementations, you have the Apache-licensed Harmony, and commercial implementations from IBM and BEA.
Java can only be helped by this because it removes one of the major objections Linux backers have against using Java.
Re:Er... (Score:5, Insightful)
Are they trying to limit forks? (Score:0, Insightful)
Prominent GPL'ed projects have rarely been forked. One major case was that of GCC (forked into EGCS), but that was a rather severe situation. The development of the FSF's GCC branch had stagnated to a horrible extent before the fork was made. This likely won't be the case with Java, since Sun will likely update it on a contining basis.
Had they chosen a far less restrictive license, such as the BSD or MIT license, we likely would have seen several prominent forks. As we can see from FreeBSD and Dragonfly BSD, and NetBSD and OpenBSD, the BSD license promotes forking. The same is true for the MIT license, as shown by the X.org and XFree86 split.
A forked version of Java would likely have been the most beneficial thing to have happened. Java needs a branch that has the cruft removed, both from the VM and from the class library. A new class library is needed, taking full advantage of generics and the other Java 1.5 features. The VM needs some major upgrades, notably in the area of garbage collection, memory usage reductions, and speed improvements. The backwards compatibility requirements currently forced on Sun seem to have prevented this from happening.
Re:w00t! (Score:5, Insightful)
No, wait, it's Slashdot!
This is great (Score:5, Insightful)
For those who have already started complaining about the license in this thread - why don't you spend a few years writing your own Java clone, and giving it away under BSD or whatever?
Re:Er... (Score:3, Insightful)
Just because the GPL isn't terribly restrictive doesn't mean there aren't alternatives that are less restrictive. The BSD license comes to mind.
Interesting, if true (Score:5, Insightful)
Second remark - I think the GPL is a good choice for this. Consider what Sun might gain from open source Java under any license:
1) Excellent integration with Linux, *BSD, and any other platform out there they haven't integrated into fully yet (except maybe Windows). They would get all the work done for free, too - distributions would be chomping at the bit to work long and hard on making everything work Just So.
2) Much better realization of cross platform "write once, run everywhere" goals. Well integrated Java everywhere can only help this.
3) Possible improvements as people get a chance to fix anything that's been annoying them for the last several years.
All very logical reasons to open source, IMHO - Java is already freely downloadable. Sun owns the Java trademark, so they have no fear of forks which mean anything in terms of threatening Java mind share - Java has to be one of the most publicly recognizable programming language brand names in the world. Sun will always provide the "only" Java, whatever else out there might run Java programs.
Now, what does GPL do for them, that other licenses might not?
1) Credibility - rather than inventing Yet Another License, making things simple using already established (and I think functional for this purpose) licenses.
2) Prevents commercial forking. Whatever open source Java becomes, it is unlikely that someone would try and compete commercially against Sun when Sun has the commercial code base and original developers. Any work any commercial developer did in competition (that they want to distribute anyway) would have to be offered free to the world under GPL, and even if Sun can't use it directly the ideas alone would be enough to allow them to keep up and maybe get there first in some cases.
3) Allows maximal code sharing in the open world. GPL has its own momentum, as a sort of "logical end point" - free except for the ability to become non-free. That would seem to make a lot of sense to me for Java, particularly since I would expect (like OpenOffice) that most of the best code would come out of Sun and be copyright Sun. Sun can put out what it wants, and still license commercially if they so choose.
Downsides for Sun primarily seem to be the "radical" image associated with GPL in some circles (yes that's a disadvantage if you want to look like a reasonable, sane business to some PHBs) and the inability to combine developments based on GPL Java back into their commercial Java without discussing it with the author. But since this very restriction is also a reassurance to the community in some ways, it might not be all bad.
Anyway, I will watch developments with interest and look forward hopefully to the day when Java on Gentoo can be well integrated and smooth.
Thats not what its about (Score:3, Insightful)
IBM Java is going away.
Re:Let someone clarify... (Score:5, Insightful)
It also affects all the regular users of ready-made distributions who only package and distribute GPL software.
This is such awesome news for all of us... (Score:3, Insightful)
Sun was making some missteps... for instance how badly EJB sucked up to 2.1.
Now we have POJO's implementing enterprise beans in 3.0. We have strong standardized support for security and cryptography (ala JCA/JCE, JSSE, JAAS). JDBC is a snap. We have excellent documentation and books available from J2ME to J2EE....
Between Britney Spears being available again and the Repubs losing House and Senate... I'd say it was a good day.
Re:Yesssssss........ (Score:4, Insightful)
Re:Will this lead to better desktop Java? (Score:5, Insightful)
Re:Yesssssss........ (Score:5, Insightful)
Given Sun and Microsoft's past history I would imagine sun would test anything that came out of Redmond wanting to be called "Java" very carefully.
New License (Score:3, Insightful)
They have no qualms of people seeing the code, submitting code, compiling on their own, etc? They want to port to all systems, etc.
There seems to be a huge void here. We need a license that covers this scenario and specifically prevents unauthorized forks. Change the code on your own machine. Submit upstream if you wish, but you can't distribute unofficial builds, or fork the code.
If such a license existed, it might be considerably more likely to see more open-source codecs, open sourced Flash players, plugins, video drivers, etc.
Sun has said forever that the code is basically out there already, and they had no qualm making it open-sourced over than the fork issue, and the only reason for this lengthy delay was coming up with an appropriate license. So why just settle on the GPL?
I'm confused.
Re:GPL2 or 3? (Score:3, Insightful)
Not obvious at all (Score:4, Insightful)
Re:Er... (Score:1, Insightful)
Which has "zarro" relevance to the current discussion. The current discussion started with someone saying that the GPL isn't restrictive (wrong by OSS standards), then someone said that BSD is less restrictive.
This is completely not debatable.
EVERYTHING you can do with GPL'd code, you can do with BSD'd code. There are things that you can do with BSD'd code that you can't do with GPL'd code. Therefore the BSD license is a less restrictive license.
Now, you're absolutely right that that doesn't mean that it's automatically a better license, or that it promotes Free software, or whatever, but fact is, that the GPL is more restrictive than BSD. Period.
You grossly misunderstand. (Score:5, Insightful)
A static VM obtained from Sun will not require source distribution when included in your product, since Sun maintains that. So anyone using Java now won't notice the difference.
It's open source, and there's no way it can be used AS THE BASIS of a 3rd-party product that isn't open source without Sun's permission, which is how they want it.
Who loses? If you want sole modification/closed distribution rights, you can get a source license directly from Sun, just like you do right now.
Forking is an essential right (Score:5, Insightful)
Re:Are they trying to limit forks? (Score:3, Insightful)
You shouldn't confuse the author of the parent post with the Java crowd in general. You used the term "you guys" (referring to the author) as if he were James Gosling and Josh Bloch.
The Java VM is still a memory hog (one VM per java process, shared nothing), however Java most certainly does not need "major upgrades" in garbage collection. Java already has a modern appel-style generational copy collector. That's about as good as gc can get. Already, typical Java programs spend only 1-2% of their time collecting garbage, so further improvements in the garbage collector would lead to very little overall performance gain.
The two remaining major enhancements needed for Java, are VM isolates and escape analysis for stack allocation. Those enhancements won't affect Java runtime performance much, since Java runtime performance is already pretty good. However they will greatly reduce memory usage, and isolates will get rid of that horrible startup lag.
...The author of the parent post also claimed "backwards compatibility requirements currently forced on Sun seem to have prevented [performance improvements] from happening." That is mostly incorrect, for two reasons. First, tremendous performance improvements in Java have already occurred--they have not been "prevented". Second, the optimizations which remain to be implemented are that way because it takes a long time for a compiler/VM combination to mature. It takes longer for a compiler/VM combination to mature than it takes C compiler to mature, because the VM attempts more and handles more tasks for the programmer, therefore more optimizations need to be implemented. Java requires not only compiler optimizations like hoisting and loop unrolling and all that, but also VM optimizations like garbage collection optimizations, escape analysis, bounds checking optimizations, etc, which C doesn't even worry about. Remember that C compilers have accumulated optimizations over decades, and the C compiler writers have much less to worry about and much less to optimize.
Re:w00t! (Score:4, Insightful)
Re:Yesssssss........ (Score:5, Insightful)
True... MS would have to call it something else... like... say... J++? Or maybe J#?
If the MS-Novell deal turns out to be the catastrophe that everyone thinks it is (based on MS' track record of how it treats its "partners"), then this is a really smart move for Sun. SuSe and Gnome get tainted, Mono becomes a dirty disease, what's left to fill in the void? Java: the reason why .NET and Mono exist in the first place.
Huge impact on free operating systems (Score:4, Insightful)
If Sun releases both the Java VM, and (more importantly) the Java class libraries under the GPL, it will be huge, because important packages will now be able to include Java functionality out of the box
Example: Distros can ship Firefox (a.k.a. Iceweasel/Firesomething/whatever) with a Java plugin. On every architecture. Running OpenBSD. And it'll be reliable, because weird OS-specific bugs will actually get fixed.
Another example: Debian et al. can start shipping OpenOffice with Java support.
If Sun plays its cards right, it will have eliminated the so-called Java trap [gnu.org], which can only serve to render Java more ubiquitous.
That said, I'll believe it when it happens.
Re:Er... (Score:5, Insightful)
It lacks the assurance that your software will remain Free and open source to anyone who uses it. This is something you can do with GPL'd code that you cannot with BSD'd code; make a legal guarantee about the freedom of the software.
Which is more free?
1) that which ensures freedom or
2) that which grants so much freedom that it permits denial of freedom
You make the argument that the answer is obvious, but if you pause to think rather than simply mashing the "reply" button, you may find that it is actually a question worthy of some consideration. I'm not saying I know the answer, but the answer has far reaching ramifications many arenas (abortion, wars, government, software, etc.)
Re:You grossly misunderstand. (Score:2, Insightful)
Re:Er... (Score:5, Insightful)
The freedom the GPL is taking away is for someone to take source code that is GPL'd and then:
1) Take that code, bundle it into a restrictive (often commerical) license and give nothing back to the community
2) Put it into a BSD style or public domain which is fine - until somebody does 1)
The Tagging Mess (Score:2, Insightful)
These days the most commonly used tags (besides yes and no) are itsatrap, fud, notfud, and duh. They occur so frequently (check this out for yourself) that they are all useless for searching. Furthermore, when somebody tags something fud, some other genius usually immediately tags it notfud. Furthermore, often neither tagger seems to understand what "fud" stands for. Furthermore, you can't usually tell whether the fud tag applies to the article or the post announcing the article, which often takes an opposite point of view.
I find the entire tagging mess so annoying that it is having the effect of discouraging me from reading slashdot altogether. I wish it would go away.
Re:Yesssssss........ (Score:4, Insightful)
Microsoft's VM was a lot better than Sun's at that time, and their Windows GUI library made AWT look like the utter pile of shit that it was. They also put a lot of effort into marketing Java as the future of Windows application development to developers, and had a language independent native interface and interoperability layer that was offered to Sun, but rejected in favour of JNI.
"Sun decided that pure Java was more important than success on the Windows desktop so I guess they should be happy that things turned out the way they wanted."
I think it was more of a case of Scott McNeally's pathological hatred of MS leading to yet another in a remarkable series of bone-headed maneuvers that ended up nearly bankrupting Sun. This particular bone of contention seemed to revolve around the fact that while the MS VM and libraries supported JNI, their use required a command-line switch, and Sun reckoned that the command-line switch should be used to enable Microsoft's options rather than theirs (for some reason, an old illustration of Swift's Lilliputians and their war over what end of a boiled egg was the correct one for breaking with a spoon kept coming to me whenever I read about that particular saga).
"These days MS isn't interested in Java and Windows developers are even less interested."
And because of Mono, the same can be said for growing numbers of Linux and OS X developers. By cutting off their own nose to spite their face, Sun not only closed the door on a big source of revenue (MS were their biggest, and therefore most lucrative licensee at that time), but also spurred the development of a competing system by a company with effectively unlimited funds that had already written their own Java compiler, VM, and libraries, and therefore had a very good idea of not only what Java had done right, but also what was wrong with it. This together with Sun's foot-dragging over open sourcing Java led in its turn to a clone of the competing system that check-mates Java's ability to run on a variety of platforms. Way to go Sun!
Re:RIP Java (Score:3, Insightful)