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."
Shouldn't it have been LGPL? (Score:4, Interesting)
Re:Shouldn't it have been LGPL? (Score:5, Informative)
Re:Shouldn't it have been LGPL? (Score:5, Informative)
Re:Shouldn't it have been LGPL? (Score:5, Informative)
Re:What do you mean, "suitable for Linux"? (Score:4, Informative)
Sun can still maintain control over "Sun Java", which is what most people will use. Sure, people could fork and deliver versions that break the tests you mention, but it is unlikely many people will use them. There are forks of most major GPL packages out there, but for the most part people stick with the main tree.
The other advantage the GPL has over the existing Sun licences is that many people are unable to look at or work with the code from Sun because their employer forbids them. GNU Classpath is an example of this in open source - cleanroom implementations only, no peeking at the Sun JDK source, and make sure you don't sign any NDA's on the way.
Re:What do you mean, "suitable for Linux"? (Score:4, Informative)
Re: (Score:3, Insightful)
Now, I can just grab the binary (since the GPL allows binary distribution
Re: (Score:3, Insightful)
Re:What do you mean, "suitable for Linux"? (Score:5, Funny)
Close... More like: "apt-get install java java-doc java-common java-dev java-examples java-gnome libjava libjava-doc libjava-dev"
Re: (Score:3, Funny)
Building dependency tree... Done
Package java-examples is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package java-examples has no installation candidate
GPL for all? (Score:2, Interesting)
Re:GPL for all? (Score:5, Funny)
And patent-wise? [slashdot.org] I mean for non-Novell customers, obviously.
Re: (Score:3, Insightful)
FUD (Score:4, Insightful)
Re:FUD (Score:5, Funny)
That's what the Empire wants you to think!
Re: (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.
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.
Re: (Score:2)
Shouldn't be an issue, for the most part [wikipedia.org]. I don't know what Bruce was going on about in that post, but it just reads like FUD to me.
Re: (Score:3, Interesting)
Re:GPL for all? (Score:5, Insightful)
Re:GPL for all? (Score:5, Interesting)
That answers your questions better than I could - but I recommend reading the entire blog post, it is rather interesting.
Re:GPL for all? (Score:4, Informative)
Holy Shit! (Score:5, Informative)
For the ideologues, knowing that there's one less piece of non-free software on your system is a real comfort. For me, personally, all that apparently remains are ATI drivers and Flash Player.
Yay!
Re: (Score:3, Interesting)
Re:Holy Shit! (Score:4, Insightful)
Re: (Score:2)
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.
Re:Holy Shit! (Score:5, Informative)
Re:Not if it is GPL (Score:4, Informative)
Not necessarily:
1. GPL doesn't require patent licenses to be granted.
2. Most of the modifications MS made to their Java implementation wouldn't have worked for Sun because they were heavily dependent on features of Windows that aren't present on any other OS. Sun could've easily reimplemented compatible extensions to Java if the only issue was access to MS's code. They didn't because doing so would have violated the spirit of Java as a cross-platform language.
Re: (Score:3, Informative)
If you redistribute code under the GPL, you give all the recipients rights to all the patents they need to actually use the code, and they can pass those rights on to others.
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: (Score:3, Insightful)
Re: (Score:3, Funny)
Of course, I am on Gentoo...
You sure on that? (Score:3, Interesting)
Debian vs. Mozilla (Score:3, Informative)
My own sympathy goes unreservedly to Mozilla, as a software developer I know what a total pain Debian is to deal with.
Re:Debian vs. Mozilla (Score:5, Informative)
I got to the point that if I could, I would use something else than Firefox. Only that I need a few extensions + the resize image capability. I don't like the recent direction Firefox is heading.
My own symphathy goes unreservedly to Debian, as a software developer I know what a total pain stupid corporate policies are to deal with.
Re: (Score:2, Interesting)
On practical note, can you share what kind of application you use Java for?
I've removed last traces of Java from my WinXP office PC (and never had it on Linux at home) and nothing had ever complained about the absence. (I'm rather curious what had installed it in first place.)
I am long term Java skeptic. Yet would appreciate any hints on why people would want Java - especially under Linux.
Re:Holy Shit! (Score:4, Interesting)
Thus, most Java applications out there have a server component using the J2EE (Java 2 Enterprised Edition) framework and running under an application server such as JBoss, BEA Weblogic or IBM Websphere (to name just the bigguest) and a client component, typically (but not necessarilly) a web-based user interface.
The J2EE framework defines which and how "enterprise" functionalities (HTTP call handling, asynchronous messaging, database access, transactions, distributed functionality, discover and communication with remotedly hosted application components, HTML templating, etc) are provided by the application server to the application itself. J2EE is roughly split in 2 parts, one dealing with dynamic web-based user interfaces (as in, the server component of it) and one for (optionally remotelly accessible) business components and their supporting backend functionality (such as database access, messaging, transactions, etc).
Java with J2EE occupies the same enterprise niche as C# + ASP with
It's quite likelly that you've already been exposed to Java with J2EE servers via web-sites on the Internet (URLs with script names ending in
There's also a lot of backend systems out there in Java/J2EE doing things like gathering and consolidating data from multiple systems, both internal and external.
The reason why many of us (which work in this area) would like to see more Java under Linux is because currently a lot of the J2EE application servers out there are running on top of Windows (*gasp*), even though all the mainstream J2EE application servers support multiple flavours of Unix (including Linux).
Re:Holy Shit! (Score:4, Interesting)
Actually in terms of numbers of installed JVMs, most Java is probably in mobile phones. There's a lot of J2ME out there, although J2EE gets the visibility because of the web-based server role.
Java shows up in some other interesting places: my wife had a couple of x-rays done a week ago and they included a printout (screen dump) of the patient info metadata from whatever application they used to control the system; the GUI was clearly Java Swing (platinum plaf).
bravo (Score:5, Insightful)
Re: (Score:3, Informative)
Java is not an acronym, its name should not be capitalised.
It's a minor thing I know, but I'm picky and pedantic enough* for it to irk me every time I see it.
(* goes with the territory; I'm an ex-physicist who moved over to programming. Equations and computers do not know what you mean, only what you say)
Re: (Score:2)
Re: (Score:3, Funny)
NeXTSTEP
NEXTSTEP
Nextstep
Answers on a postcard.
Re: (Score:2)
Re:bravo (Score:5, Informative)
NFS... Netbeans... JXTA...
Sun has been the biggest commercial contributor to Open Source for some time now... this just makes it even more so.
let's see who's the first one (Score:3, Funny)
Re:let's see who's the first one (Score:4, Funny)
Huzza! (Score:2, Insightful)
I'm really impressed with Sun on this one.
GPL/Open Source benefits Too! (Score:5, Interesting)
Re: (Score:2)
Hey, if Ballmer [theregister.co.uk] says so, it must be true, right?
More articles (Score:5, Informative)
InfoQ [infoq.com], also mentions Glassfish.
eWeek [eweek.com].
There is also going to be a official webcast [sun.com] about this by Jonathan Schwartz and Rich Green 9.30 a.m. PT.
In related news, apparently Project Looking Glass [sun.com], the 3d desktop, is likely to be included in the Ubuntu Feisty [java.net] release.
finally (Score:5, Funny)
Technical Details (Score:3, Informative)
Re: (Score:2)
A more detailed link (Score:4, Informative)
http://news.zdnet.com/2100-3513_22-6134584.html?ta g=zdfd.newsfeed [zdnet.com]
Re: (Score:2, Informative)
What about J2EE (Score:2)
future of GCJ/Kaffe (Score:2, Interesting)
RMS (Score:2)
Re:RMS (Score:5, Informative)
I have quoted two soundbites on my blog [sun.com] from videos that will be shown at the announcement tomorrow (the quotes are from the information that was (I believe) given to the press.
I've seen the video shorts (well some of them) that will be shown at the announcement. I think some folks will be surprised. RMS also makes reference to the java trap.
Tp.
Make? (Score:2)
How is this going to work?
Y
Re:Make? (Score:5, Informative)
You've been able to do that for years - just not under an Open Source licence. Sun have provided the entire JDK source (including the VM code) under their own Sun Community Source Licence (see http://www.sun.com/software/communitysource/j2se/
You need a bunch of binaries to get it bootstrapped (i.e. it requires Java to build Java) but the result is entirely compiled from the source you can get from the above site.
GPLing it is a change of licence terms, not a change in the actual availability of the source.
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 appli
I, for one... (Score:5, Funny)
Re: (Score:3, Informative)
Well, he has been open sourced too [java.net], so there really is no escaping!
GPL linking exception for class libraries? (Score:2)
Re: (Score:2)
The class libraries have the linking exception.
Tp.
Couldn't come at a better time (Score:2)
And Java 1.6 (6?) is coming really soon now.
My only worry (Score:2)
Hopefully Ubuntu, Debian and Fedora will just take the current version of Java, compile it with all the bugs still intact (I'm not kidding!!) and stick it in the repositories.
Re: (Score:3, Insightful)
I know. I hate navigating the maze of incompatible GCC, Perl and Python implementations we're stuck with.
GCJ, Kaffee, GNU Classpath (Score:3, Insightful)
Let's hope now Java integrates all the good features of C#, like true generics.
Re:GCJ, Kaffee, GNU Classpath (Score:4, Informative)
GCJ will survive because it provides a facility that doesn't exist in the standard JDK (i.e., ahead-of-time compilation).
Kaffe will survive because it's BSD licensed.
Classpath will initially try to survive by copying large amounts of original Java code into itself, but I suspect will eventually become irrelevant as patches for classpath-using applications become available to allow them to use the original Java class library.
Let's hope now Java integrates all the good features of C#, like true generics.
That's easier said than done. A stable binary platform is important to the success of Java, and I suspect implementations of this kind of thing (of which there will be multiple) will result in a forked, fragmented platform with multiple implementations incompatible of interoperating with each other. Then an official Java distribution will pick up new features at probably only slightly faster rates than the current one, and the best of the features will be backported. We'll see slightly accelerated improvements in "official" Java because of the interest, but nothing dramatic, is my guess.
Re: (Score:3, Insightful)
RMS previously on SUN freeing Java (transcript) (Score:4, Informative)
Richard Stallman discussed this in a Nov 1st interview. I've put a transcript online [fsfe.org].
And then the dirty little secret is revealed (Score:4, Funny)
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:And its still a PIG! (Score:5, Informative)
You have to remember that you are starting up a full virtual machine environment. That is going to have lots of overhead, especially at initialization. Anyone who expects to run "Hello, World" programs efficiently is a fool.
Java really does well with big server apps, where the cost of initialization can be amortized over a long period of time. Additionally, JIT compilation and live profiling really work well here.
Server apps really do well with Java. There are fewer opportunities to create difficult to track bugs, memory management handles the fragmentation issues, etc. The performance delta between a C++ and a Java server app is often fairly negligible* while the development time is often substantially faster and it is easy to move to other platforms.
* - A well written C++ app built for a generic processor architecture and a long running Java server app will frequently run about the same. The C++ app is stuck with the tuning choices made at compile time, while JIT and profiling available in Java will tune the Java app at run time, making up for the overhead of the virtual machine. If the "Gentoo" model is followed - the compiler is carefully set to provide maximum performance for a given machine - the C++ app can run substantially faster. However, the cost is that the binary can no longer be moved to a similar but not identical machine without rebuilding. This tuning activity typically requires lots of time and expertise, and generally makes environmental management efforts prohibitively complex. These solutions don't make their way into most real world environments.
This settles it (Score:3, Funny)
Where are the open source zealots now? (Score:3, Insightful)
A Great Disturbance (Score:5, Funny)
Re: (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: (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:This is good, but... (Score:5, Interesting)
Java is an embeddable language at the hardware level. So-called "Java chips" provide a very real platform for deployment on handheld devices. It's easier to develop applets in Java than in, say, C, since Java is higher-level. The fact that there is low-level support for such a high-level language makes it popular with cell phone developers.
Your point of Python is a good one. After all, Python is high-level, intelligent, and permits object-oriented development. It's my favorite, and I'm writing a few programs in it right now. However, Java still has a few advantages. First, it's ported more places, the most obvious off the top of my head being that Java's Mac OS X GUIs are far more robust and less buggy than Python's. Second, it's compiled and then byte-interpreted, giving it a fairly good speed compared to Python's interpretation. Python also has structures that, while easier to read, definitely don't execute as fast. (I do concede, however, that Java is no speed demon.)
Also, Java is embeddable as a web applet. Only a few other languages can do that. You can't exactly drag'n'drop a Python application into a web browser, hook it up to a frame, and project it to the world.
Of course, since this is Slashdot, I'll finish up with a low-blow bit of rhetoric. If Python is superior to Java, then why is the leading Bittorrent client, Azureus, written in Java if the original Bittorrent client was written in Python?
Re: (Score:2, Informative)
Java is as low level as PHP, and I don't know what the parent poster was referring with it being "more low level and general purpose". True, it is one of the big 3 with the 2 C's, but i'd say it's more specialized than Python. Few things make Java worthwile and console programs ain't one of them, for example. And more low level? Than what? Java is pretty much as high as you can go.
Azureus is the leading resource client because peop
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: (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 impor
Re:This is good, but... (Score:5, Informative)
In theory, Python has Psyco that can do JIT-compiling, but in practice dynamic nature of Python prevents most of optimizations.
Re:This is good, but... (Score:4, Interesting)
Python is bytecode-compiled also, although to be fair I believe Python's bytecode is substantially higher level than Java bytecode. There is also a native-code just-in-time compiler (psyco) for x86 platforms that works reasonably well.
IMO, the main problem with Python, performance-wise, is that a variety of operations it supports are defined by the commonly-accepted understanding of the language to be atomic. This includes modifying lists and dictionaries. Because of this, these structures must have all accesses synchronised, which the standard Python implementation achieves by only allowing one thread to execute at once. I don't think I need to point out how horrible this is for scalability to multiprocessor systems.
Re:This is good, but... (Score:4, Funny)
If Python is superior to Java, then why is the leading Bittorrent client, Azureus, written in Java
I don't know but it may be connected with why it's also a buggy, slow, memory-hogging piece of shit that crashes or just goes ape-shit crazy on a regular basis. I have a theory that this is actually caused by Java's garbage collection agent trying to delete the whole of the program's code on the grounds that it clearly is garbage.
Re: (Score:2, Interesting)
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.
Re: (Score:2)
You know, the reason why few desktop applications are written in Java has little to do with licensing issues. I mean, Qt was much more commonly used than Java, even when its license was just as bad as Java's was until now.
The point is: Java on the desktop sucks. I blame poor toolkit design, myself, as I've seen some Java apps with alternative toolkits tha
Re:But its 10 years late! (Score:5, Funny)
Oh thank God they didn't open source it in the 90's!
Re: (Score:3, Informative)
No need, latte [snu.ac.kr] is already distributed under a BSD license, which is GPL compatible.
Re: (Score:3, Informative)
And I want a link that doesn't crash Firefox 3 times in a row ...
I don't know what's on the page that's so evil for Firefox under Linux, but I had to open it in Epiphany to see ... meybe its another hint for me to get SuSE off my hd ASAP.
Re: (Score:3, Funny)
Re: (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: (Score:3, Informative)
I have zero experience with the Stripes web framework, but this comparison between Stripes and Struts has an excellent illustration of the klunkiness of Struts: http://stripes.mc4j.org/confluence/display/stripe s
"One of my prime frustrations with Struts is the fact that just to implement a single page/form, I have to write or edit so many files. And I have
Re: (Score:3, Interesting)
The GPL isn't some black hole that can suck up any and all licenses into it's undeniable gravitational pull. Come to think it, real black holes don't do this either unless their event horizons are crossed. Put that way, IBM Java can't and won't cross the GPL event horizon. At most, it will orbit at a