Sun Completes Java Core Tech Open-Sourcing
MsManhattan writes "A year after announcing its plans, Sun Microsystems has made almost all of the core technology in Java available as open-source software under the GNU general public license version 2 (GPLv2). However, some of the code remains 'encumbered'; that is, Sun doesn't have sufficient rights to release it under GPLv2, and the company is requesting the open-source community's help in resolving these issues. Rich Sands, community marketing manager for OpenJDK community at Sun, would not say what percentage of Java's 6.5 million lines of code are encumbered, but explained that it is largely Java 2D graphics technology, such as font and graphics rasterizing."
Woohooooooo! :) Now OpenSolaris
In case anyone is wondering, this isn't much of a surprise to the Java community. When Sun was creating the latest and greatest Java libraries, they designed the APIs themselves to be generic. However, Sun generally licensed the underlying libraries for their reference implementation rather than developing them in-house. In the case of the Java2D APIs, they used code from Kodak to do all the fancy 2D rasterizations and transformations. This is why many Java coders thought that Sun's reference implementation would never be Open Sourced. (Happy to be wrong, BTW.)
That code by itself could probably be replaced with a modern 2D rasterizer (similar to the types found in SVG and Canvas implementations), but it would need to be heavily overhauled to backport the VolatileImage support added in Java 1.4. (Basically, the JVM is able to manage the video card memory to store images for faster rendering and backbuffering.) I'm thinking that something OpenGL-based would be the best bet.
However, that's not the only major library used. JavaSound also uses Dolby Headspace to render sound. It barely uses a fraction of the library's capabilities, but it would still need to be replaced. I don't know what was used for cryptography, but that would be replacable with a library like Bouncy Castle.
All in all, the final code shouldn't be too hard to replace as long as Open Source equivalents can be found. However, these areas *do* require significant expertise, so don't expect that joe random can jump in the code and make it happen.
Javascript + Nintendo DSi = DSiCade
Apache currently has many Java-based Apache 2 licensed projects. The Apache 2 license is incompatible with the GPLv2.
Does releasing Java under the GPLv2 effectively prevent the use of Apache 2 code (or any commercial code)? Does this mean that the only Java programs that can be used with the GPLv2 copy of Java are those under the GPLv2?
Saw the original suggestion last year and mentally wrote it off. Didn't think Sun would drive it through - the fact that it has happened with some areas still to be worked out (the libraries) impresses me the most.
It'll be very interesting to see where this goes next... let's see if the open-source leveraging effect works in practice for something this big (and this awkward).
"we demand rigidly defined areas of doubt and uncertainty!"
Being on the fence about using Linux and never really being sure what version, what build and what revision I should go for (hundreds of choices make it intimidating for newcomers to the Linux world), I've always been curious what would have happened if there was a board to approve the general direction, additions and revisions so that be it a platform or a programming language, the tangents wouldn't stray too far from the main group.
FTA
---------
Open sourcing Java represents one of the largest donations of code to the developer community, Sands said, but merely making software freely available is insufficient. "Open-source developers need to have rules and governance spelled out for them for how they use and interact with the code base," he added.
With that in mind, Sun is establishing an OpenJDK interim governance board, which is to create a constitution and gain the community's approval for it over the coming year.
---------
I hope that this 'board' approach will help the Java community stay closer together. I'm not being obtuse, I simply hope that the Java language doesn't take a wide turn in countless directions so that you need so many different libraries or new revisions that your programs can't keep up with the community's additions.
All in all, I'm very pleased at this turn, I recall the proposal from last year and finally the wheel has turned towards us! Yay for Sun and good luck to all the Java community members! I look forward to sharing your new ideas with mine!
A black cat crossing your path signifies that the animal is going somewhere. -- Groucho Marx
No need to look the gift horse in the mouth here.
Sun should be commended for this. It's not just a spec, but the best implementation avaialable.
And don't forget, it's the same company that gave us open office.
"If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
So, does this mean we'll see better integration of Firefox with Java now? Currently, if I go to a page and the browser freezes for about 15 seconds, I think to myself, "This page must have an applet."
What's being open sourced is this (see https://openjdk.dev.java.net/):
Today this project contains two significant components of the JDK:
* The HotSpot Virtual Machine
* The Java programming-language compiler (javac),
with complete NetBeans project metadata
There are several high performance virtual machines and compilers for Java already, so this doesn't really make much difference to anybody.
The parts that matter are the libraries and the specifications. But there are lots of open questions about those. Are they going to be GPL with or without linking exception? What parts are actually going to be missing? Does Sun claim patent rights (creating a Novell/Microsoft-like situation)? What's the effect of Sun's dual licensing? How is Sun going to get community development working if they still have a commercial license? Is Sun going to require copyright assignments?
I'm getting pretty tired of the way this stuff is dribbling out of Sun and the kinds of games Sun seems to be playing with licenses. I've removed Sun Java from my Linux system; gcj, Classpath, and IKVM work fine.
(I posted this under the wrong story so I am copy pasting here....)
I think most people in the F/OSS community don't see the importance of Sun's actions in the last couple of years regarding the economic viability of F/OSS.
This is a company who opened sourced (or is open sourcing right now) a very large important and complex portfolio of it's software. It is also a company which is considered a major player in its field and a lot for these software products where successfully sold for big bucks in the past.
F/OSS takes a lot of criticism regarding it economic model which most businessmen see as non existent. If Sun can pull it through and improve its financial results after making such a big commitment to F/OSS software, only than will the F/OSS community will have a winner in their hands to show off in front of skeptics. This is not the same as Red Hat who made a business out of F/OSS but a company which is rejecting the old ways of closed source and is taking a big gamble that F/OSS is not only the right thing to do morally, but that it can also become a better business model than closed source software.
Is there some reason why they (Sun Java) can't merge with GNU classpath ? It seems quite likely the latter would be able to provide all of the missing libraries, since they were working for many years on a free implementation of Java.
I am a c++ developer who doesn't really like C++, but has held back from switching for years.
I've been very annoyed at and cynical about Sun's handling of Java. If Sun had opened Java years ago I would have switched (and I'd be much happier right now).
Now, it's a bit late, but I am satisfied that they have finally done the right thing, in a real and full way. The remaining issues are understandable. Yes, they only did it because of competitive pressure, but I guess that's how it goes.
I won't be switching to Java right away, but I think the opening of Java will be the decisive factor for me when it comes to my future personal technology decisions.
Why Sun never recognized this as a problem and did something about it, like working with browser makers to pre-load the JVM, I don't know.
It's the no1 reason why Applets died.. and because of that we had to wait until the Javascript/XML fightback to get Web 2.0.
Is this just another example of corporate culture getting in the way of seeing reality?
How we know is more important than what we know.
Don't be so quick to condemn Sun. Open sourcing a gigantic project like Java takes time, especially since they don't own much of the code and needed to establish a governance model.
You got the wrong link.
This is the correct one:
http://openjdk.java.net/
I'm not sure why Sun didn't fix the other link, though, because it's clearly out of date.
This space left intentionally blank.
I stand by companies like IBM. I'm running Open Source AIX here right now. Oh, wait...
I am TheRaven on Soylent News
It's not just a spec, but the best implementation available now that Microsoft has stopped writing JVMs.
Fixed.
(Been awhile since we had a Karma fire.)
Slashdot quality declines as the number of hot grits posts decreases. - Provolt's Law, Apr-09-2005
However, some of the code remains 'encumbered'; that is, Sun doesn't have sufficient rights to release it under GPLv2, and the company is requesting the open-source community's help in resolving these issues.
Mozilla had the same issue when Netscape first released it. It's probably the single biggest reason why Mozilla development was held up for years. That may not happen here, but I find it worrisome.
Not a typewriter
Yeah, that 1.14 JVM with windows-only hooks kicked ass.
...and to think Sun only needed a 2 billion dollar apology for it.
"If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
Well, it's been a long time since I used an MS "jvm" implementation. I didn't find it superior, or even as good. Perhaps it depends on what you are doing.
P.S.: I put jvm in quotes when referring to the MS version, as I found it not standard-compliant. Admittedly that was in the VERY early days. (I did rather like SuperCede Java compiler, which also was non-standard. One difference is that they didn't try to pretend that it was. Another is that is was EASY [i.e., trivial] to blend Java and C.)
I think we've pushed this "anyone can grow up to be president" thing too far.
I hope the software gets the community support it deserves.
u re.html
http://www.arm.com/products/esd/jazelle_architect
What's the strategy for if other vendors begin to offer hardware support?
Last time I checked support was considered an encumberence by one or other party and removed from Hotspot.
It would be nice to test the possibilities of the hardware in some open source NAS device conversions (if possible).
Java is a pile of rubbish made by executives for executives with the purpose of making money during the bubble. If the same efforts were directed into pushing for free device drivers for, say, nVidia cards, that would be a great achievement. .NET).
The one and only positive effect of having Java free will be the bigger threat it will represent for the Microsoft edition of the pile of rubbish (aka:
I disagree. I think Sun's implementation is considerably superior to anything Microsoft produced. If you want to qualify it, I'd qualify it with "the best implementation available for general-purpose platforms". For embedded stuff IBM's J9 is much better and Sun's JVM is absolutely unusable for very small devices, like smart cards.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
You could always help out with Apache Harmony to create a full, open sourced JVM!
Who said Freedom was Fair?
Yet another toy programming language open sourced.
Now, instead of a 'standard' broken toy programming language, we can have hundreds or forks and patches for the broken, 'standard' toy programming lanugage.
Everyone and their dog will rewrite portions that they don't like, none of it will be standard, and in true 'javadoc' fashion, there will be almost no documentation.
Face it, java is a nice toy, for those who can't afford a real compiler. The dream of 'write once , run anywhere' is just that, a dream.
*cough* http://openjdk.java.net/ *cough*
The http://openjdk.dev.java.net site is defunct.
The important bits are all there, sans part of the Java2D and JavaSound implementation libs.
Javascript + Nintendo DSi = DSiCade
*ahem* The name is OpenOffice.org .
It's this key consequence of the exception that makes it so excellent.
Nobody who is moderately sane thinks that when we use a car then the car-driver combination is a derived work of the car, and that therefore the copyrights covering the car must also cover the driver. Yet, that was the insane worldview of a few in the community who were adamant that simple usage was derivation and therefore engaged the copyright. The Classpath exception makes it certain that this cannot happen.
The exception is a bit of a miracle, I'm not sure how we managed to get it past the GPL politicians.
The term "linking" has actually caused a lot of confusion due to the difference between how Java links to libraries as opposed to C/C++. For C/C++, linking is much closer to a derivative work than in Java since (to my knowledge, I'm not a C programmer) when you "link" to a C/C++ library, you actually need the source code (or at least header files) from that library in order to compile your code, therefore including elements of that library's source in your final binary. In Java, you can "link" your code to a library's binary without including anything from it's source.
http://www.mhall119.com
Sun contributes a lot to Open Source and produces very interesting hardware. Thanks for Java, thanks for OOo (which I find to be a huge pig but then I also find MS Office to be a mega pig), thanks for OpenSolaris... And thanks to RMS for the GPL. It's good to see Sun choosing the GPL (with exceptions) as their open source Java licence.
;) and some others done worse (*). This is a testimony to Java's quality as a third-generation OOPL (I'm not saying that third-generation language are the be-all end-all of programming nor that OO is the be-all end-all of programming, but simply that as an 3rd generation OOPL Java is very good).
Trolls are already in the thread saying that OOo is unusable and that (Open)Solaris is the most insecure Unix ever. The trolliest of them all even dare to say that Java is a failure... On this last point nobody should be mistaken: Java is a langage and a VM whose success is beyond any language author's wildest dreams.
As stated by James Gosling himself not long ago: it is basically impossible to do a financial transaction today without having Java involved at one point or another... And this is a Good Thing (TM) Why is the banking industry so in love with Java? The bullet-proof JVM and portability of the languages. Not a single language before Java had ever offered such an incredibly good VM running on so many different hardware/software configurations.
There are countries where tens of millions of people are carrying "Java SmartCards" on them. More than 90% of all cellphones sold worldwide have a J2ME VM (agreed: not Java's most glorious example, but nearly 20% of all games sold worldwide are little Java games for cellphones sold to casual gamers... Food for thought to anyone dismissing J2ME).
Java is a success that has grown beyond anyone's wildest imagination and it just keeps getting better and better. I was an very early Java believer (back in the days where it was really messy to do Java development on Linux) and back in the days there were many misconceptions regarding Java. Nowadays it's simply unexcusable to try to deny that Java is a huge success. Like COBOL today, Java will still be the technology making the real-world work in decades (insert your lame jokes about COBOL here... I personally laugh everytime some COBOL is involved when you're making a real-world transaction [and, yup, I've done COBOL programming]).
Note that (contrarily to C#/.Net) "Java the language" and "Java the VM" have been chosen because they were very impressive technologies, not because the company creating them had a monopoly on a certain market. C# is a copy (7 years later or so) of "Java the language", with some things done better (thankfully, 7 years later, that they got some things right
Thanks Sun.
(*) C# has then been basically forced down the throats of programmers locked in the MS monopoly. If C# hadn't Microsoft's illegally maintained monopoly (the "illegally maintained monopoly" is a fact, checks your facts if you disagree) backing it wouldn't be anywhere near where it is today.
And don't forget, it's the same company that gave us open office.
Aw hell. That probably means it has its own GUI toolkit. And it's written in C++. And maybe it even depends on Java.
It's important because when you call a non-GPL library from a GPL program, or a GPL library from a non-GPL program, the combination (program + library) in the memory of the computer could be considered a derived work of both components.
It's also irrelevant, because making a copy of a computer program in memory, from a source which does not infringe copyright in and of itself (e.g. an original CD that you rightfully own) and for the purpose of running the program, is explicitly permitted by copyright law -- it falls within the scope of Fair Dealing. Otherwise you might be denied the use of something that you had bought and paid for; which would certainly run afoul of the Sale of Goods Act 1979 as amended and/or the Unfair Contract Terms Act 1977 as amended.
Je fume. Tu fumes. Nous fûmes!
Yeah, I know, IHBT, but I currently work on a java project (shared with Subversion) on Eclipse variously in Slowlaris, Ubuntu, RHEL and Windows NT 2000 without issue. We also have devs for our graphic designers working with eclipse on Macs (powerPC & intel). The dream of write once, run anywhere seems pretty alive to me matey.
& the Java (on WebSphere) transaction system connected to this processes around a billion transactions per year. Some fricking toy.
What about the poor folk like me running Linux on Sparc who can't use anything Java? Or some other architecture? Once this is complete it's going to be good for the non x86 Linux community.
"If you plant ice, you're gonna harvest wind."
... I'm not a C programmer) when you "link" to a C/C++ library, you actually need the source code (or at least header files) from that library in order to compile your code
:-)
In most cases you need the header files, yes, but that's only because they define the API to the libraries, no other reason. They almost never insert code into your app, but just tell the compiler what it is that you will be using later. And as is extremely well known with decades of legal precedent worldwide, APIs are the cornerstone of interoperability, so you encumber them with attempted restrictions at your peril. The precedents are so overwhelming that nobody even tries it on, except for a few loons like SCO.
That's all a tangent to the point in the parent though, which was about USAGE not being the same thing as creating a derived work. It's a matter of principle and commonsense, as well as being consistent with the definition of derived work as employed in copyright law. And in that respect, usage by linking is not derivation in C or C++ code either, despite the fudging of commonsense in the GPL community. (*)
The Classpath exception got it right, all round.
---
(*) It's worth noting that this didn't refer either to Eben Moglen nor to RMS, who said (paraphrasing, respectively) that "The GPL is not a usage license", and "We know that we can't enforce copyright on linking, even if we'd like to". It was other zealots with more religion than commonsense.
If by best, you mean the only major JVM to have numerous and consistent security problems, you've hit the nail on the head.
Microsoft is/was responsible for like 90% of Java security exploits. Sun and IBM's JVM implementation have impeccable security records.
Go figure, eh?
Perhaps we're wondering off topic here, but, if what you say is true, then what's the difference between licensing a library (ie. a bundle of C/C++ code that is intended to be compiled to a .o file and then linked to some other application) under the GPL vs. the LGPL?
For example, I believe GNU Readline is explicitly GPL and not LGPL whereas glibc is LGPL. IIRC, Readline is GPL because RMS figures it's a pretty awesome library with no closed-source equivalent, so it's a bit of a carrot in the carrot-and-stick game of getting people to switch to Free Software. On the other hand, making glibc LGPL means that closed-source software can be made to run on GPL'd operating systems by using glibc as their C library. If, as you say, the GPL can't cover linking, what stops an entity from writing a closed-source app that links to Readline, but distributes only the Readline source with the otherwise-closed binaries? Have I missed something, or gotten some facts wrong?
Ian
Don't feed the troll.
News Flash: Implementation by the language's designer in 2007 is superior to an implementation the designer sued to kill back in the Java 1.1 days.
Quite possibly nothing in law; the open-source-but-not-GPL examples along the same lines I've heard of involved lengthy exchanges between RMS and the person running the open source project involved (with people from the community diving in on both sides), which eventually culminated in the OS project leader abandoning whatever other license they were using and agreeing to use the GPL to end the conflict, not so much because they were convinced that they were legally obligated to do so.
IIRC (and I'm too lazy to go reread the GPL at the moment) the "linking" provision isn't in the text of the GPL explicitly, its an explanation in the FSF GPL FAQ.
I wasn't comparing Java6 to Microsoft's late-90s JVM.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
Sun Completes Java Core Tech Open-Sourcing.
Don't believe the hype.
Same, I am project manager of a huge Java/Tomcat/Hibernate project where we have built a real time MP3 stitcher (stitches MP3 files at real time, for podcasts) all code is 100% Java, no native code (other than the ones within the core java libs).
Run once/run everywhere just works.. we code on Win XP pcs, and Macs using Eclipse. Deployed on an 8 way Opteron based Sun Iron, running Solaris, and a smaller Windows Nt2000 box.
Just works, and performs fast (stitches files of 20 MB with on average 2 adverts, in less than a second)
Have a nice day!
What a coincidence, this exact thing (if I have understood you correctly) did happen! The result? The program had to be released under GPL. Read all about it here. (this seems like a rapidly changing URL - it's basically a file in the clisp project).