Sun Open Sources Java Under GPL 535
prostoalex writes "The embargo is off, and Associated Press is reporting on Sun releasing Java under GPL. Sun is hoping that this step will attract more developers, as well as extend the lifespan of Java. The article notes that this is 'one of the largest additions of computer code to the open-source community', and that Java is currently being run on something like 3.8 Billion devices worldwide." From the article: "Rich Green, Sun's executive vice president of software, said the company hopes to turn more developers into Java programmers, who may then create additional software to support Sun products. 'The open-sourcing of this really means more — more richness of offerings, more capability, more applications that consumers will get to use,' Green said. 'The platform itself will become a place for innovation.' All the Java source code is expected to be released by March 2007, Green said. The move covers all Java technology, which includes software that runs on handheld devices, personal computers and servers."
bravo (Score:5, Insightful)
Huzza! (Score:2, Insightful)
I'm really impressed with Sun on this one.
Re:This is good, but... (Score:2, Insightful)
Script languages are good for small applications but when it comes to big and/or commercial software you need something else. Java is probably one of the most used language (with C and C++) in commercial applications. So yes it is important.
Re:GPL for all? (Score:3, Insightful)
Re:Holy Shit! (Score:3, Insightful)
Re:Holy Shit! (Score:4, Insightful)
Re:Holy Shit! (Score:5, Insightful)
Because 10 years ago, before Java had built up the momentum it has today, a certain company deliberately embraced, extended and corrupted the core libraries with their own OS specific extensions, and shipped this version with their operating system until they were forced by court to stop. Had they succeeded Sun would have lost control of the language to the other company, or it would have been forked to irrelevance. This understandably made Sun a bit paranoid about having total control over Java for quite a while.
But its 10 years late! (Score:1, Insightful)
Just think if Sun had done this in the 90s. There would never have been a GTK/Qt appliactions split because all software would have been written in Java. Assuming the deveopers allowed open source fixes to the performance, Linux, Mac and Windows users would all be using the same free applications and the desktop OS would simply be a JRE support system. A huge investment of volunteer time in GTK apps, in Qt apps, in Mono apps, in the now obsolete ClassPath project - all that work could have been productively spent developing Java applications.
Its great that Sun have finally released Java. Its instructive to see that all they achived by 10 years of keeping it under a restrictive license is huge financial losses for themselves, the emergence of
Re:But its 10 years late! (Score:4, Insightful)
I personally think timing is great. Java6 is a great piece of software, lets start from that point and see if we can make it better.
Towards to a one platform (Score:2, Insightful)
I believe that this move by Sun will increase development speed of Java and more importantly it will make Java more common. By having Java as a GPL, there is no reason left why Linux distributions wouldn't include Java in default installation. By becoming a standard part of Linux installations, it will gather more mind share from developers, both open source and commercial, and make developing of Java based applications more lucrative. It's interesting to see if this move will bring Java over a tipping point in desktop environments and lead to a situation where more and more applications are based on Java, leading to a total commodization of desktop.
When Java will become more standard part of a desktop, I believe that it will change deeply on how we build our applications. I think that the future is for applications that have desktop application component that is integrated to a server application. Already it's quite easy with Java to develop server software that works via multiple interfaces, ie. web and desktop. The only question for now has been, do all clients have Java, maybe in the future there is no need to ask this question.
GCJ, Kaffee, GNU Classpath (Score:3, Insightful)
Let's hope now Java integrates all the good features of C#, like true generics.
Re:This is good, but... (Score:4, Insightful)
Python is also compiled and byte interpreted. It is certainly not interpreted in the same fashion as a shell script. Python even keeps the bytecode versions around and wil use them later to save recompilation. Any speed difference betwen the 2 will not be due to interpreation.
It is likely that Java will be a bit faster because there has been more resources thrown at and therefore more people able to do optimisation.
However, the big reason is that Python is a dynamic language (similar to Perl) and the compiler cannot make the same optimisations that a more staic language, such as Java and C can. It also tends to mean an extra layer of pointer redirection (hidden behind the scenes). When you have the ability to tie ('tie' is the Perl-speak way of talking about this - not sure if they use another word in Python) variable to external resources, you can't take any chances even with consecutive reads of the same variable. This all adds time.
As you say, you last shot is a low blow. Just because something is 'leading' does not make it the best - is Windows the best OS or IE the best browser? Maybe, maybe not - but I htink on Slashdot we'd agree there is more to it than just 'leading'. I've not used either client, but maybe Azureus is simply a better program with a better interface, maybe it is more widely available for different platforms? I have no idea - but it says nothing about the relative merits of the 2 languages as such.
Re:This is good, but... (Score:3, Insightful)
Python is compiled and then byte-interpreted, just like Java. If you have to bring the speed argument to the table, at least bother to verify WHY it's slower before spouting nonsense.
Also, while Python maybe be slower objectively, especially in number crunching, the significantly faster startup times and generally smaller memory usage often make it seem much snappier, which is at least as important for many if not most applications. Java GUI toolkits other than SWT are also universally regarded as slow, and Python is significantly easier to extend with C so you can speed up the parts that really need it.
Also, Java is embeddable as a web applet.
In theory, in practice Java applets never worked well, and have been going the way of dodo pretty much since their inception, you rarely see one these days - fortunately, painful as they were.
FUD (Score:4, Insightful)
Re:FUD (Score:3, Insightful)
Re:GPL/Open Source benefits Too! (Score:2, Insightful)
I predict that you will be doing a lot of high-priority Java/.NET porting over the next few months.
Re:In Ur Face, Novell (Score:3, Insightful)
I don't think so. While Java isn't as fast as C, it also doesn't peg my cpu at 100% on a regular basis. If Novell made their deal with the devil^H^H^H^H^HMicrosoft to protect Mono, they screwed up.
This is interesting enough that I'm going to hit the book store for some more O'Reilly - for some Struts, Hibernate and Spring.
Re:GPL for all? (Score:5, Insightful)
And its still a PIG! (Score:5, Insightful)
Maybe as open source software people will be able to look at it and ask *why* does it have to take up so much memory to do such simple jobs? Compare for example Azureus (in Java) to bittorrent (in Python).
Re:My only worry (Score:3, Insightful)
I know. I hate navigating the maze of incompatible GCC, Perl and Python implementations we're stuck with.
Re:This is good, but... (Score:3, Insightful)
Tell that to Google. My own company has switched to Python for all future application development. If Python is a scripting language, then so is Java.
Re:Debian vs. Mozilla (Score:2, Insightful)
actually it's much worse than that even (Score:3, Insightful)
Only if C++ is patent encumbered, there are few implementations, and the only useful implementation is owned by a company that is no longer willing to try to work around the patents to produce a truly free implementation, and, in fact, has made a deal with the devil so only their own customers can legally use their implementation.
Comment removed (Score:3, Insightful)
Where are the open source zealots now? (Score:3, Insightful)
Re:GPL for all? (Score:2, Insightful)
Not all parts of the .Net environment are covered under ISO/ECMA standards. Even if it were completely covered, the notion that Microsoft won't violate it's own standards or ignore a toothless standards organization if it pleases is just foolish.
You can't "fix" a patent violation. Once it's done, it's done and you're liable. Assuming that there's some work-around you might be able to remove future liability but depending on the nature of the patent there's no guarantee that's practical or even possible.
One of the common excuses for directing OSS mindshare to MicroSoft IP encumbered technology has been that "Java is just as bad." That excuse has now been eliminated. It's time to stop wasting OSS resources helping Microsoft and Novell build elaborate IP traps.
Re:Not if it is GPL (Score:4, Insightful)
Actually, it does. If Mircosoft didn't want to grant a patent license, they could not distribute it under the GPL. The funny twist is the one Microsoft pulled with Novell - what you need to make sure is the party distributing the code (Novell) isn't the same as the one holding the patent (Microsoft). They can't give Novell a patent license because that'd hold Novell to the GPL - instead they create a covenant saying they won't sue Novell for those patents. It's in essence a patent license without actually giving one. Mircosoft could have pulled exactly the same with a subsidiary "Microsoft Java, Inc." who'd happen to be in a covenant with Microsoft, Inc. to not get sued, but everyone else is.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
Re:GCJ, Kaffee, GNU Classpath (Score:3, Insightful)
Re:FUD (Score:5, Insightful)
With Perl and C/C++ available on just about every system out there I can't see choosig Mono for command line work. If I want to go Mono, it's because I want a common platform for creating a graphical interface. Choosing Mono means that I am hoping that they can keep up as MS continuesly developes and extends those aspects of
Now this doesn't even take into account the new deal between MS and Novell which has a number of us Star Wars nerds nervous about patents as well. So cheap shot aside I think your take is overly simplistic and a knee jerk reaction to FOSS zealotry. Just because FOSS fans can sometimes go over the top about "teh evil MS" doesn't change the fact the MS has consistently abused their monopoly influence over the years and screwed over partner after partner.
Bottom line, now that Java is GPL I beleive it will be the safer choice between it and Mono for cross platform development without hidden "IP violations" to worry about.
Re:What do you mean, "suitable for Linux"? (Score:3, Insightful)
Now, I can just grab the binary (since the GPL allows binary distribution of derived works, as long as the source is available). The real question is how is the trademark licensed? Will the unofficial ports be allowed to be called Java? Or will I have to run 'KenyanPeaberry, base on Sun Java(TM)?'