Sun Completes Java Core Tech Open-Sourcing 141
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."
One word! (Score:1)
Re: (Score:2)
Re:One word! (Score:5, Insightful)
Re: (Score:3, Informative)
Re: (Score:2)
Re: (Score:1)
Not much of a surprise. (Score:5, Informative)
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 [bouncycastle.org].
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.
Re:Not much of a surprise. (Score:5, Interesting)
As a longtime java developer, and advocate of the open source java, I think it's time to put my time where my mouth is. Albeit a few questions:
* Where is the effort being organised
* Is there a list of the methods that need to be reimplemented?
* Have I been tainted -- I've seen java code before, If I reimplement something and it might look like the previous code, how do I guard against this?
* Can we make java better?
Re: (Score:3, Funny)
I would love to help myself
As a longtime java developer, and advocate of the open source java, I think it's time to put my time where my mouth is. Albeit a few questions:
* Where is the effort being organised
* Is there a list of the methods that need to be reimplemented?
* Have I been tainted -- I've seen java code before, If I reimplement something and it might look like the previous code, how do I guard against this?
* Can we make java better?
It seems to me that java.sun.com is the place to start looking for these answers, and not slashdot ;)
Re:Not much of a surprise. (Score:5, Informative)
https://openjdk.dev.java.net/ [java.net]
I imagine that the Graphics2D class as well as the VolatileImage class need to be implemented. The BufferedImage implementation may need to be modified to obtain the "Automatic Image" behavior seen in the Sun JVM. Depending on how much Sun has withheld, you may need to implement the GraphicsEnvironment code as well. I recommend asking on the mailing list for specifics.
The "tainting" problem was always an OSS community invention based on Sun's license wording. As long as the code you've seen is in the OpenJDK, it's quite impossible for you to be "tainted" as Sun has given it to you under the terms of the GPL. Of course, you should always consult a lawyer for the latest in paranoid-protective behavior, but I sincerely doubt that Sun would try and sue you over something they just gave you.
You can do whatever the GPL license allows you to do. However, I imagine that OpenJDK won't accept anything more than implementation enhancements. New APIs need to go through the JCP for standardization before they can be accepted into a mainline JDK distribution. Again, ask on the mailing list for more details.
Re:Not much of a surprise. (Score:5, Informative)
Re: (Score:1)
Re: (Score:2)
Help out with Harmony (Score:2)
Re:Help out with Harmony (Score:4, Insightful)
Why not get one open source JVM working first, and work on others later?
Re: (Score:2)
* Can we make java better?
Making it stop throwing away type information (generics) would be very, very nice. This is imho one of the greatest current flaws in Java. I fear it will mean changing the JVM, though.
In case anyone wonders: From the perspective of the JVM, List<String> is the same as List. If you can't see why this is bad, take a breath and think again. Think casts. Think interfaces.
Besides this, I could make a very, very long wishlist for Java. Though I suppose I'd just end up with C++, minus the old annoying ba
Re: (Score:2)
Which is exactly why Sun opted to make generics a compiler constraint, so that generified code would still run on older VMs. I agree though, that since Java 6 introduced changes to the bytecode, they could have included generic type information at that point.
Re: (Score:1)
Not as pithy, I'm aware.
Re: (Score:2)
Which is exactly why Sun opted to make generics a compiler constraint, so that generified code would still run on older VMs. I agree though, that since Java 6 introduced changes to the bytecode, they could have included generic type information at that point.
Perhaps Lisp, C is very simple (and a completely different game than C++). But perhaps you mean that it would be far better to work on a language that already have lots of the missing features implemented (like C++) or simply more advanced if yet somewhat incomplete (like Haskell). You might be right, then. It is just that I am forced to drag Java along like a block of concrete around my legs, and thus I hope (someone else) will fix some of the more glaring shortcomings. :)
Re: (Score:3, Informative)
There are some real compatibility issues in doing this (I remember Gilad Bracha covering this at a previous JavaOne), but it sounds like they are at least willing to take a look at it again.
Re: (Score:2)
Re: (Score:2)
Meh. Even if there is an improper cast from a List<String> to List<Integer>, the JVM still won't break; it will just throw an error at access time instead of original cast time. Muddling up Java's clear and simple type system isn't worth it here.
Yeah, why have compile-time types at all? Let's throw all that away, who needs it? You'll get a stacktrace if you encounter the bug while running. And overloading? Who ever needs to overload on a List<float> vs. List<int>, say? No need for that, we can just sample the elements to see if they are of one type or the other.
Re: (Score:2)
Additional features and improvements are no doubt going to occur as the result of opening up the code base, but I feel that compatibility should be at the forefront of any design decision when Java is involved.
After all, isn't the whole point of Java interoperability, and hardware agnosticism (ge
Re: (Score:3, Interesting)
Re: (Score:2)
Serious question: Java, Apache 2, and GPLv2 (Score:2, Interesting)
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?
Re: (Score:2, Informative)
Re:Serious question: Java, Apache 2, and GPLv2 (Score:5, Informative)
Sun isn't using GPLv2, they are using GPLv2 + the Classpath exception. This is a modification to the GPLv2 pioneered by the GNU Classpath project. It basically makes Java's code GPL, but doesn't require code running on the JVM, or using the J2SE libraries, to be GPLv2 complaint.
Links here:
http://www.sun.com/software/opensource/java/faq.j
http://www.javalobby.org/java/forums/t84256.html [javalobby.org]
http://en.wikipedia.org/wiki/GPL_linking_exceptio
Philosophy of exception: usage IS NOT derivation (Score:2, Interesting)
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 coveri
Re:Philosophy of exception: usage IS NOT derivatio (Score:3, Informative)
Re: (Score:2)
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-st
Re: (Score:2)
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 aban
Re: (Score:1)
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 [sourceforge.net]. (this seems like a rapidly changing URL - it's basically a file in the clisp project).
Re: (Score:2)
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 l
Re: (Score:2)
See the OP's link to FSF for more info
Re:Serious question: Java, Apache 2, and GPLv2 (Score:5, Informative)
In addition:
The second part is tenuous given the wording, but could be made to apply given Java's attempt to be the execution platform. However, the former part carries far more weight. Programming to the Java specification does not imply that you are basing it on a GPLed version.
Re: (Score:2)
Re:Serious question: Java, Apache 2, and GPLv2 (Score:4, Insightful)
And? Whoopdie-fracking do. Let me see if I can translate this into idiot for you:
Step 1: Go to http://java.sun.com/ [sun.com] and download a JDK.
Step 2: Ask yourself, "Did I just agree to the GPL?"
Step 3: Ponder the legal implications of never having agreed to the GPL, or in fact, having any GPLed code in your possession.
Alternate:
Step 1: Go to http://jcp.org/en/jsr/tech [jcp.org] and find the Java API you're targetting.
Step 2: Download the skeleton classes and use to create a program.
Step 3: Ponder the legal implications of never having agreed to the GPL, or in fact, having any GPLed code in your possession.
Just because Sun releases a version of the platform under the GPL does not automatically make the entire platform GPL. And in any case, the FSF interpretation of Java code has always been suspect anyway. Their interpretation of Java linking is flawed, and of dubious enforceability.
However, this has always been more of an argument for the LGPL. If you develop with a GPLed version of a JDK, one could make a weak legal argue that you're extending the GPLed code in specific, and not the specification of the code. It would probably fail to hold up in court, but the possibility is there. Which is why the Classpath project issues this clarification [gnu.org] of the license. It basically extends the OS exception to say that the Java classes are covered under similar terms. Not that it's legally necessary, as releasing the Classpath project cannot automatically make Java code fall under the GPL. But clarifies the position of using the Classpath library for development purposes. (Something which they couldn't enforce anyway.)
Unsurprisingly, Sun has the same clarification [sun.com] for the GPLed code.
Re: (Score:2)
So what you're telling me is that if Joe gives Bob a Java program, and Bob then decides to run it using a GPLed JVM, Bob is in BIG TROUBLE if that program isn't GPLed?
Wow. Your legal theorez just blewz meez mind, man. I think I'll have to take a few
Re: (Score:1, Informative)
Java is linked at runtime. According to the FSF, linking to a subclass at runtime counts as a derived work.
They can say that all they like, but it's provably false.
How can you create a derivative work of a piece of GPLed source if you've never seen that source?
The same with the binary.
If I develop a J2SE application now, on Sun's current non GPL Java, and then later run it with a GPLd version, I have no more created a derivative work of the GPLed version than my music collection sitting on the shelf constitutes a derivative work of all the CDs in it.
use is not derivation, and is not copyright infringement, so n
Re: (Score:2)
Java is linked at runtime. According to the FSF, linking to a subclass at runtime counts as a derived work.
That only shows that the FSF has no idea how java works, either that, or you've misunderstood them.
Sure, at an abstract conceptual level a subclass is a derivative - that's the point, after all. But copyright doesn't apply to the abstract idea of a "class", it applies to the actual creation put down in tangible form - that is, the source code and the resulting binary from compilation.
If you're not distributing the binary or the source, and you never used a line of the source in your work, copyright doesn'
Re: (Score:2)
Re: (Score:3, Informative)
Furthermore, the GPL covers distribution, not use.
Re: (Score:2)
Re: (Score:3, Informative)
Re: (Score:2)
Re: (Score:2)
For example, Sony uses GCC in the PS3 devkits, yet there is not a single OSS game for the PS3
If I write a paper in OpenOffice, the paper is not automagically GPL
etc. etc.
Wow, it's really happened (Score:2)
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).
I look forward to this new approach... (Score:1)
FTA
---------
Open sourcing Java represents one of the largest donations of
Re: (Score:2)
It's called the Linux Standard Base [linux-foundation.org]
Re: (Score:2)
The number of GNU/Linux desktops running Ubuntu is now one in three and still growing, couldn't do too badly to jump on that bandwagon if only to give it a try.
Sands: " Open-source developers need to have rules and governance spelled out for them" But maybe not by Sun. The community might choose another group to lead them, especially since Sun hasn't taken the time to build free alternatives to important Sun java libra
Better Firefox integration? (Score:2)
Re: (Score:3, Insightful)
That's caused by the JVM startup. The pause can be nearly eliminated by starting the JVM with the browser. Of course, that slows the browser startup and holds onto memory needlessly. So I doubt anyone is going to bother doing that for a dead technology. (i.e. Applets)
Re: (Score:2)
With Java being open sourced, I have an odd feeling that applets may have been resurrected as a Flash/Silverlight competitor.
Re: (Score:2)
Re: (Score:2, Informative)
Re: (Score:2)
Re: (Score:2)
and it's been like that for YEARS (Score:2)
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?
Re: (Score:2)
Really, the JVM does not take a lot of memory to pre-load.. that argument is just premature optimization.
The Sun Experiment (Score:5, Insightful)
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.
Re: (Score:2)
That's based on a misunderstanding. FOSS is enormously valuable to businesses, but not as a "business model" in the sense of earning money. FOSS is about collaborative development by end users for the purpose of reducing risk and costs.
But Sun isn't an end user. They reduce neither their risks nor their costs by open sourcing Java, which raises the question: why is Sun doing this?
I think there are several
Re: (Score:1)
Re: (Score:2)
bullshit there are plenty of measurements by which it loses. For example if you count in terms of the total number of processors running stuff written in a language C and C++ would probablly win by far.
java applets have almost completely lost the in browser apps market to flash and ajax (a posh name for javascript/dom based coding that uses the network)
java applications never really took of in either the commercial or opensource desktop software markets (there are notable exceptio
Re: (Score:2)
java applications never really took of in either the commercial or opensource desktop software markets
Now you're talking bull. Search on the major IT job advertising websites by language, and you'll notice that there is a massive demand for Java programmers. Not only to work on J2EE web related stuff, but Swing based applications, particularly for banks. C# and .Net have started to eat into this market to some extent, but there's a serious amount of Java code that would have to be ported or thrown away
Re: (Score:2)
i don't dispute that java is very common in the custom internal apps which users will be forced to use market
Gnu classpath ? (Score:3, Interesting)
Re: (Score:3, Informative)
Re: (Score:2)
Re:Gnu classpath ? (Score:4, Insightful)
I am satisfied. (Score:2)
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
Re: (Score:2)
I wasn't around when C++ came out.
Regarding the other SDK's - there are alternatives to many closed software products/platforms, but I still care what the official owner does. I'm not going to consider Mono and ignore the fact that it is really MS that owns C#, nor am I going to consider GNU Java without taking into account that it is Sun that primarily determines what happens with Java.
Mozilla Had the Same Problem (Score:2)
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.
Re: (Score:3, Insightful)
Re: (Score:1)
As I understood it, the portion of code Netscape open-sourced didn't really even compile into a browser. Netscape was in the middle of rewriting all their own stuff in Java (of all things) already, so the codebase was incomplete and neglected. Mozilla managed to extract Bugzilla and some other interesting stuff, but they did not throw away a functioning browser implementation; they cannibalized a mostly abandoned codebase and used what they thought they could.
Food for thought: Imagine how different it woul
Thank you Sun and thank you RMS for the GPL (Score:4, Insightful)
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.
Re: (Score:2)
No, I know at least one major bank where the retail banking system is written in Assembler. It just works and handles an incredibly large number of transactions. I know of exchanges where the backend is written in a mixture of C++/C & COBOL all the way through to the client APIs. You *can* use a Java based GUI on the system, but you coul
Re: (Score:2)
I also want to add a few more things which you have missed.
Java is also part of the Blue-Ray Specification, with Java being used to create some of the more interactive Elements.
Also here in Europe, Java is used in the MHEG DVB specifications, as well as new iterations of DAB.
Recently, there has also been some work in creating emulators for other platforms using Java. However, they are not emulators, in the strict sense, as the native code
Forget OpenSolaris! (Score:2, Interesting)
Re: (Score:1)
Finally, Java might be cross-platform after all!
Re: (Score:1)
Sure it has limitations:
- it's not up to JDK 1.5+ levels for compatibility
- performance *seems* slow but I haven't compared with Solaris+Sun-JDK on same hardware yet
I wouldn't say "can't use anything Java" though.
-Joe
Re: (Score:1)
Re: (Score:1)
The most annoying feature is I found Kaffe on sparc linux to be much slower than my sun jdk on int
Re: (Score:1)
You're not interested in a blade 2000 are ya? lol
Re:SUN and GPL (Score:5, Interesting)
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.
Re: (Score:1, Flamebait)
Fixed.
(Been awhile since we had a Karma fire.)
Re: (Score:2)
...and to think Sun only needed a 2 billion dollar apology for it.
Re: (Score:2)
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.)
Re: (Score:2)
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.
Re: (Score:2)
Re: (Score:2)
I wasn't comparing Java6 to Microsoft's late-90s JVM.
Re:SUN and GPL (Score:5, Funny)
I stand by companies like IBM. I'm running Open Source AIX here right now. Oh, wait...
Re: (Score:3, Informative)
http://openjdk.java.net/ [java.net]
You'll note that those downloads include all the core libraries that Sun promised to release. Why don't they redirect users looking at http://openjdk.dev.java.net/ [java.net] to that page? I have no idea, but there you go.
Re: (Score:2)
Its very easy to end up in various dead-end parts of Sun's web presence: I've run into lots of old links to zombie Sun webpages that were still up even though outdated and replaced by updated pages at different addresses.
Re: (Score:2)
OK, here's the deal.
Sun's announcement doesn't talk about including the Java libraries.
Sun's Subversion repository contains none of those libraries in an identifiable place (https://openjdk.dev.java.net/source/browse/openjd k/).
But, after downloading the source zip file and grepping, it turns out there is a lot more stuff in the zip file than in any of the other places. For example, there is actually Swing with a C
openjdk.java.net (was I'm getting tired of this) (Score:1)
You got the wrong link.
This is the correct one:
http://openjdk.java.net/ [java.net]
I'm not sure why Sun didn't fix the other link, though, because it's clearly out of date.
Re:it's just HotSpot and javac (Score:4, Informative)
The http://openjdk.dev.java.net [java.net] site is defunct.
The important bits are all there, sans part of the Java2D and JavaSound implementation libs.
Re:New Toy - Yay! (Score:2)
Re: (Score:2)
Re: (Score:2)
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 le