Stories
Slash Boxes
Comments
typodupeerror delete not in

Comments: 141 +-   Sun Completes Java Core Tech Open-Sourcing on Tuesday May 08 2007, @11:07AM

Posted by Zonk on Tuesday May 08 2007, @11:07AM
from the the-beans-are-gratis dept.
java
programming
software
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."
story

Related Stories

This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • 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.

    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.
    • by AchiIIe (974900) on Tuesday May 08 2007, @11:38AM (#19038469)
      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?
      • 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 ;)

      • * Where is the effort being organised

        https://openjdk.dev.java.net/ [java.net]

        * Is there a list of the methods that need to be reimplemented?

        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.

        * 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?

        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.

        * Can we make java better?

        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.
      • You could always help out with Apache Harmony [apache.org] to create a full, open sourced JVM!
        • Re: (Score:3, Informative)

          I'm sitting in a JavaOne BOF right now where reification of generics (the fancy way of saying not throwing away type information) is being mentioned as a possible JDK 7 feature.

          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.

    • I agree, code replacement does seem to be the most reasonable way to resolve this issue. However I cannot help but feel that this would prematurely cause forking and general divergence from the original closed Java.

      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)

      Wouldn't Cairo (cairographics.org) be the perfect fit for a software 2D rasterizer? Might not be the fastest but it's there, it's usable, even Firefox is jumping on the boat.
    • And combine this with JGC and I will be a happy man.
  • by Anonymous Coward
    Apache currently has many [apache.org] Java [apache.org]-based [apache.org] Apache 2 licensed [apache.org] projects. The Apache 2 license is incompatible with the GPLv2 [fsf.org].

    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)

      No, it doesn't. There was quite a deal of work that went into making sure that that was ok.
    • Apache should be able to continue to use the same license it is using now. The Apache 2 license takes a much stronger anti-patent stand than the GPL2, or even the GPL 3 license. This makes Apache 2 less compliant with other open source licenses.

      See the OP's link to FSF for more info
    • From the GPLv2, last published June 1991:

      If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works.


      In addition:

      However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.


      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.
            • Sun is releasing the Java libraries under the GPLv2. The article never really explicitly makes that clear, but given that they're talking about the Java2D library it should be deadly obvious that they're releasing the entire J2SE library under the GPLv2.

              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:3, Informative)

                  The OO concept of "derivation" is not the same as the legal concept of a derived work, even though they use the same English word.

                  Furthermore, the GPL covers distribution, not use.
    • Re: (Score:3, Informative)

      GCC is GPL, but my gcc compiled malware program is commercial software.
    • Like everything else, the GPL2 only covers the code in question, not the input/output
      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.
  • 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).
  • 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."
    • Re: (Score:3, Insightful)

      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."

      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)
      • With Java being open sourced, I have an odd feeling that applets may have been resurrected as a Flash/Silverlight competitor.

    • Firefox supports Java just fine. If you get a delay when you see a Java applet it's probably because Java isn't loaded into memory.
    • 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?
  • The Sun Experiment (Score:5, Insightful)

    by krelian (525362) on Tuesday May 08 2007, @12:05PM (#19038845)
    (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.
  • Gnu classpath ? (Score:3, Interesting)

    by Salsaman (141471) on Tuesday May 08 2007, @12:09PM (#19038883) Homepage
    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.
    • Re: (Score:3, Informative)

      Speaking as one of the GNU Classpath developers, I agree with that idea. However, there are some issues to be worked out, like the ownership of the code. GNU Classpath's code is copyrighted by the FSF and Sun's code is copyrighted by Sun. Both organizations require that contributors sign a copyright agreement before accepting code. I don't know about details, but I guess Sun and the FSF would have to arrange something before such a thing could happen. Luckily, Dalibor Topic, also a Classpath developer, is i
      • That's exactly my point. They should hire some of the classpath guys, and then they'd have a clean-room implementation ready for use.
        • Re:Gnu classpath ? (Score:4, Insightful)

          by mhall119 (1035984) on Tuesday May 08 2007, @12:38PM (#19039369) Homepage Journal
          Because it is much easier for Sun to just release 90% of their code under the same license used by GNU Classpath, then let the classpath guys, or anyone else in the community, figure out what of that missing 10% can be filled in with Classpath code.
  • 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
  • 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.

  • by Anonymous Coward on Tuesday May 08 2007, @01:33PM (#19040277)
    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.

    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 ;) 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).

    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:SUN and GPL (Score:5, Interesting)

      by LDoggg_ (659725) on Tuesday May 08 2007, @11:36AM (#19038435) Homepage
      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.

        • Yeah, that 1.14 JVM with windows-only hooks kicked ass.

          ...and to think Sun only needed a 2 billion dollar apology for it.
        • 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.)
        • It's not just a spec, but the best implementation available now that Microsoft has stopped writing JVMs.

          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.

    • by TheRaven64 (641858) on Tuesday May 08 2007, @12:22PM (#19039091) Homepage Journal
      Yeah, Sun sucks. They haven't contributed anything worthwhile to the community. Well, except OpenOffice. And that whole NFS thing. Oh, and OpenSolaris. Well, and Java now...

      I stand by companies like IBM. I'm running Open Source AIX here right now. Oh, wait...

    • 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.

      It's called the Linux Standard Base [linux-foundation.org]

    • Being on the fence about using Linux and never really being sure what version

      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
    • There's Nexenta [gnusolaris.org], which is basically Debian on the OpenSolaris kernel. But you're right, it would be nice to have a completely unencumbered Solaris.
    • Re:One word! (Score:5, Insightful)

      by eviltypeguy (521224) on Tuesday May 08 2007, @12:34PM (#19039285)
      OpenSolaris is open source and *free software* minus a few encumbered portions, just like Java. So I'm uncertain as to what you are referring to.
      • there's been a rumour for quite a while now that sun will move solaris10 from the CDDL to GPL3 as soon as GPL3 is finished. (one should also mention that duke nukem forever will also be released under the GPL3 according to a similar rumour)
    • Re: (Score:3, Informative)

      Actually, that's the wrong page. For some crazy reason that's incomprehensible to the average human being, Sun moved the code to a different page. See here:

      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.
      • 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] [java.net] to that page?

        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.

      • You'll note that those downloads include all the core libraries that Sun promised to release.

        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
Slowly and surely the unix crept up on the Nintendo user ...