Forgot your password?
typodupeerror
Java GNU is Not Unix Programming Software IT Linux Technology

IcedTea's OpenJDK Passes Java Test Compatibility Kit 271

Posted by timothy
from the oh-joyous-day dept.
emyar writes "At JavaOne in May, 2006, Sun Microsystems announced they were going to release Java as free software under the terms of the GPL. The size of the task (6.5 million lines of code) was only eclipsed by the size of the opportunity for Java as a free and open technology. [...] This week the IcedTea Project reached an important milestone — The latest OpenJDK binary included in Fedora 9 (x86 and x86_64) passes the rigorous Java Test Compatibility Kit (TCK). This means that it provides all the required Java APIs and behaves like any other Java SE 6 implementation — in keeping with the portability goal of the Java platform."
This discussion has been archived. No new comments can be posted.

IcedTea's OpenJDK Passes Java Test Compatibility Kit

Comments Filter:
  • Perfomance (Score:2, Insightful)

    by electricbern (1222632)
    How about performance. It is a great milestone, it is, but if it is too slow it isn't ready for prime time.
    • Re:Perfomance (Score:5, Informative)

      by JimDaGeek (983925) on Thursday June 19, 2008 @02:17PM (#23861467)
      They are using the "real" Java source. Only 4% of the Sun Java code wasn't released. So IcedTea only had to implement the 4% of Java that wasn't GPLed.
      • by Reverend528 (585549) * on Thursday June 19, 2008 @03:20PM (#23862589) Homepage

        IcedTea only had to implement the 4% of Java that wasn't GPLed.

        Although 4% doesn't sound like much, it's actually just short of 8 billion lines. It sounds unbelievable that they could accomplish that so quickly, but Java's strength is in making it easy to write large amounts of code.

        • by Z34107 (925136)

          Others would have modded you funny (instead of flamebait), too, but they were destroyed by Java's implementation of "sockets."

          Think "light bulbs" instead of "network connectivity" and you'll see what I mean.

          • Re: (Score:3, Funny)

            by cheesybagel (670288)
            Actually I believe they got sockets right... it only took them 2 or 3 iterations of the API. :-)
      • Re:Perfomance (Score:5, Informative)

        by Anonymous Coward on Thursday June 19, 2008 @04:54PM (#23864383)
        This is not completely correct. In the OpenJDK project we have been removing the encumbered code and have whittled down the nonfree part of OpenJDK's source tree to 0%. OpenJDK6's source tree is 100% open source. IcedTea has been matching this by removing some of the patches they applied. Most of what's left in IcedTea is a build system. Oh, and a plugin.
    • Re: (Score:2, Interesting)

      by sm62704 (957197)
      How about performance. It is a great milestone, it is, but if it is too slow it isn't ready for prime time.

      With 6.3 megs of source my guess is the guy from Space Oddessy would say "My God! It's full of bloat!"

      I would be incredibly surprised if it was speedy. I wonder how many of those lines are "NOP"? How many of them are comments? How many are actual, once working code that has been commented out?
      • Re: (Score:3, Insightful)

        by glebfrank (58922)
        You do realize that NOPs and comments do not affect the speed of the software, once it's compiled?
        • Re: (Score:3, Informative)

          by sm62704 (957197)
          Yes, which would affect the size of the source without bloating the code. That's why I asked. If 5 megs of the 6.3 megs of source is comments, that's a GOOD thing. Little or no bloat and the code is decipherable.
          • Bloat? (Score:5, Informative)

            by ttfkam (37064) on Thursday June 19, 2008 @07:55PM (#23866955) Homepage Journal
            Are you sure you're not overreacting? If you hop on over to perl.com, you'll notice that the *compressed* source of Perl 5.10.0 is 14.9MB. The compressed source of Python 2.5.2 is 11MB. Ruby 1.8.7 comes out well at 3.9MB, but that's without any gems (good or bad depending on your point of view). The source for Common Lisp 2.4.5 is 7.1MB.

            However you're singling out Java as the one that's bloated? Get real.
            • Re:Bloat? (Score:4, Insightful)

              by Nikker (749551) * on Thursday June 19, 2008 @09:50PM (#23867877)
              There really isn't that much bloat in Java. The reason the source is so huge is because of all library's. They have much more than a standard C distribution and cover every thing from OS calls to network sockets, thread management, encryption, HTML tools, the list still goes on. Being able to compile a Java class file that can be run natively by the kernel your class size would be quite small compared to the class file + run time files.
      • Since most of the java source is in java, I doubt there are many (if any) "NOP"s in there... also, you're aware comments don't get compiled, right? So like, they won't slow it down? Yeesh. Anyhow, as mentioned above, this is based on the official Sun code so the performance should be pretty damn close.
    • Re: (Score:3, Funny)

      by penguin_dance (536599)
      How about performance.

      I don't know, that Ice T guy seems to be pretty talented. First he's a rapper, then he's an actor, now he's writing Java....what?

      Oh, nevermind....
  • by Anonymous Coward on Thursday June 19, 2008 @02:12PM (#23861381)
    If Mono wants to ever become suitable for enterprise use, it will need a testsuite and compatibility kit like this. One of the main benefits of Java is the stringent standards that implementations must adhere to. This brings a level of predictability that we just can't get from .NET or Mono. And for huge enterprise apps, that predictability is totally necessary.
    • Re: (Score:2, Insightful)

      by Funks (661017)

      If Mono wants to ever become suitable for enterprise use, it will need a testsuite and compatibility kit like this. One of the main benefits of Java is the stringent standards that implementations must adhere to. This brings a level of predictability that we just can't get from .NET or Mono. And for huge enterprise apps, that predictability is totally necessary.

      And you believe that it would be in Microsoft's best interest to create a .NET platform TCK?

    • On Windows machines, .NET is hugely predictable :-) Microsoft is "not bad" for actually getting stuff done. In the last few years, I've done SQL server, Oracle, and lastly DB/2 running on an AS/400, all from C# using pretty much the same techniques. It gets the job done, enterprise-wise.
    • by DickBreath (207180) on Thursday June 19, 2008 @02:55PM (#23862157) Homepage
      Mono already has a much simpler compatibility test.
      • Does it run on Windows? (Check)
      • Does it have poisonous patents? (Check)
      Okay, it passes.
  • by KidSock (150684) on Thursday June 19, 2008 @02:23PM (#23861557)
    Languange compatibility was never the main problem - it was class libraries. Java has a mountain of class libraries.

    Unfortunately most of them are complete bloat (e.g. Swing, NIO, logging ...). Each package is like a treatise on OOP and design patterns. When are people going to learn that OOP is just one tool of many?

    But Java the *language* is great. I wish that someone would create a non-bloat version of the Java class libraries. Do an analysis of important use cases, redesigned the class libraries to be much less "fluffy" and then post some metrics to show how much better it performs.
    • by jalet (36114) on Thursday June 19, 2008 @02:31PM (#23861719) Homepage
      > I wish that someone would create a non-bloat version of the Java class libraries. Do an analysis
      > of important use cases, redesigned the class libraries to be much less "fluffy"

      Somebody did just this [python.org] already.
    • by Octorian (14086) on Thursday June 19, 2008 @02:39PM (#23861843) Homepage
      But at least its only a mountain :-)

      I don't know if Mono can ever catch up to the whole mountain range that .NET has bundled in. Especially since its taken far less seriously than Java by this community.
    • Re: (Score:3, Interesting)

      by snoyberg (787126)
      Why would remove features from the library make a program perform (significantly) better? Why not just avoid using those classes you consider bloated?
    • by CastrTroy (595695) on Thursday June 19, 2008 @02:50PM (#23862067) Homepage
      I'm not sure how much more performance you could achieve simply by culling the unused stuff. Java already dynamically loads only the classes you use into memory. We have gotten to a point where people don't want to rewrite their own XML parsers, sorting algorithms, cryptography libraries, UI components, network connection handling functions, and all the other wonderful stuff provided by the .net and Java APIs. We're probably a lot better off because of it. Less time wasted writing code that someone has already written a million times. If you still want a smaller version of the JDK, there's always the Java Micro Edition Platform [sun.com].
    • Re: (Score:3, Insightful)

      by DuckDodgers (541817)
      Aren't you talking about a social problem, not a language problem?

      Use the class libraries you like, build your own replacements for the ones you don't in Java itself or in C, and then (and here's the tricky part) convince the people you work with to only use your stuff.

      Rewriting all of the class libraries to be more syntax consistent and intuitive would be fantastic - but you break so much backwards compatibility you might as well give up and adopt Groovy or Scala.
    • by Anonymous Coward on Thursday June 19, 2008 @03:20PM (#23862593)
      And as examples of bloat, you had to pick Swing, NIO and logging?!?

      Logging is a quasi-identical to Apache's log4j, indeed this caused bad feelings among log4j's authors who felt Sun should just have officialized their API. Of course the reason Sun used it as an (ahem) inspiration is that it's very good, as demonstrated by the absolutely huge number of projects using it. And you know as well as I do that rolling out your own is a common developer trait, *especially* for trivial things like that.

      NIO is brilliant. If it's too complex or low-level for you, just use the "old IO", which is *also* good - just not as low-level.

      Swing, I can understand your feeling. Although the real problem with Swing is not "bloat" as in unnecessary complex and featurefull, it's that even though it only shipped in a JDK with 1.2 (which had the Collection framework), Sun bowed to short-sighted morons who kicked a fuss when it was suggested that it be put in java.swing (instead of javax.swing), and as a result still uses the old Vector and so on.

      Generally speaking, what you call "bloat" is due to:
      - the presence of libraries *you* don't use. Guess what, other people do.
      - the provision for extensions. For instance, the java.net package is chock full of factories, abstract classes and interfaces that you seem to disdain. And indeed to 98% of developers who just use it for the net, that's all pretty pointless. The upshot is that should you require Unix or X25 sockets, you can still use the same API - I've seen it done. Sure you have to write the C code, but the Java code is all the same except the bit that gets the address. How many open-source language don't even have a common low-level DB API, forcing you to write you own single use abstraction layer when you need to target several DBs? At least with Java you know it's JDBC. Always.

      Sun's attitude towards libraries has always been, as far as Java is concerned at least, make the simple easy, make the difficult possible. To me that's good design. Of course it means that easy can be more complex than with more specific APIs. But those tend to not allow the difficult at all :-(
      • by curunir (98273) *
        The problem with the Java API at this point is that there's been such an effort made to ensure that each new release is backwards compatible with all other releases that it's become a jumbled mess. This is why Java is continually getting trashed as being bloated.

        What needs to happen is some serious work into deprecating and then actually removing the stuff that's old or a result of some failed experiment. That Vector, Hashtable, StringBuffer and so many other old classes are still part of Java 1.7 is a crim
    • by vdboor (827057)

      But Java the *language* is great. I wish that someone would create a non-bloat version of the Java class libraries.

      Someone else already did this [trolltech.com] as well. :-)

  • Apple (Score:5, Insightful)

    by thomas.galvin (551471) <slashdot@thomas- ... inus threevowels> on Thursday June 19, 2008 @02:24PM (#23861589) Homepage
    Sweet. Maybe was can start getting Java VMs on the Mac less than a decade after they're released now.
    • by sm62704 (957197)
      Now that it's open-source and Apple is UNIX-like you can do Java on Mac yourself.
      • by Ilgaz (86384)
        Cocoa/Core Audio/Integration with OS X Desktop and the rumours of Carbon future make it hard for everyone. Only company besides Apple to ship such a huge thing is Sun and it could get real pricey for them. They absolutely need to start hiring Cocoa/OS X programmers and start talks with Apple on future of Java on OS X.

        I won't be surprised if Apple says "Java 6 will be Intel only" for example. Won't be surprised at all.

        You know any handset which has higher price than $70 and doesn't have J2ME? Take a guess :)
    • Re:Apple (Score:4, Insightful)

      by Ilgaz (86384) on Thursday June 19, 2008 @03:21PM (#23862601) Homepage
      Where were you past 3-4 months? :)

      Landon Fuller and a team made Java 6 running under OS X X11 (and command line of course)

      http://landonf.bikemonkey.org/static/soylatte/ [bikemonkey.org]

      It is said to have great performance too.

      The real issue is, how to make that gigantic thing available to PPC G5 and G4/G3 (if they accept perf. penalty) processors under OS X. X11 could be OK too. The Java 6 release(!) from Apple is Intel 64bit _only_. We can't ask Apple as they even abandoned Intel 32bit users (on that release) so there should be some team, likely from IBM needs to step in. They shipped Java 6 for Linux PPC/PPC64 ages ago. They should step in and save/support their CPU customers, especially G5. While people buy G5 workstations/servers, they also bought IBM CPUs.
      • I was in the corner, bitching about the fact that it took almost a decade to get Java 6 on the Mac. From a third party. Then, I was bitching about the fact that Apple decided to release the "official" Java 6, but limited it to 64 bit processors.
  • Six point three million lines of code??? How is it possible for a language to need six point three milliion lines of code? Is this bloat, or are all six point thee million lines actually used?

    The first iteration of Artificial Insanity (a smartassed Turing test program I wrote way back when I still gave a shit) was less than 16k of BASIC, but when I rewrote it with pretty much the same source code in Clipper for DOS, the executable was over 400k despite the fact that the source was still less than 16k.

    The SO
    • Re:Ask Slashdot (Score:5, Informative)

      by The End Of Days (1243248) on Thursday June 19, 2008 @02:35PM (#23861787)
      Java the language and Java the platform are not at all the same thing. OpenJDK refers to an implementation of the platform, which includes the tools, the API, and the VM.

      It's mostly written in Java (the language), by the way.

      By the by, reading that first link made my brain hurt. When is GNU going to learn that the language of doom ("shackled," "trap," etc.) is a good way to ensure that you preach only to the choir?
      • Re: (Score:3, Funny)

        When is GNU going to learn that the language of doom ("shackled," "trap," etc.) is a good way to ensure that you preach only to the choir?
        I suspect it'll be around the same time that Republicans learn that people care about more issues than the terrorists.
      • Re:Ask Slashdot (Score:4, Insightful)

        by Jason Earl (1894) on Thursday June 19, 2008 @03:39PM (#23862953) Homepage Journal

        By the by, reading that first link made my brain hurt. When is GNU going to learn that the language of doom ("shackled," "trap," etc.) is a good way to ensure that you preach only to the choir?

        RMS has been talking that way for years. There's essentially no chance of him changing his ways at this point. This is especially true considering the fact that RMS' zealotry has netted him an impressive string of wins including a GPLed version of Java.

        The fact of the matter is that the Free Software community has become a rather influential player in the software world. Sun GPLed Java because the executives at Sun finally realized that despite the huge push for Java from the "Enterprise" crowd, the real reason that Java was a competitive platform was because of the large quantity of Free Software that had grown up around Java. Sun needed Free Software hackers, but for the most part Free Software hackers weren't interested in working with Java.

        In this particular case, preaching to the choir was precisely what was needed.

    • Re: (Score:2, Informative)

      by Thiez (1281866)
      Java comes with a huge library of classes. It seems that is was the article about. I'm sure you can write a working java interpreter in less than 6.3 million lines.
    • Re: (Score:3, Insightful)

      by Anonymous Coward
      That count includes the standard libraries. And it includes the *comments* in the standard libraries, from with the javadocs are generated. All in all, it sounds like a pretty reasonable number.
    • by Ilgaz (86384)
      Java is not only a language, it is a virtual machine which should run anywhere with amazing levels of backwards compatibility.

  • What's the point? (Score:4, Interesting)

    by jps25 (1286898) on Thursday June 19, 2008 @02:32PM (#23861743)
    Okay, so I understand that this is a huge success, yay GPL and all that, but what is wrong with Sun's JDK?
    What makes the OpenJDK more desirable than Sun's?
    Is it merely the GPL?
    Are there any performance gains?
    I don't use java, so I really have no idea and it would be nice if someone could enlighten me.
    • Re: (Score:3, Interesting)

      by Funks (661017)

      Okay, so I understand that this is a huge success, yay GPL and all that, but what is wrong with Sun's JDK? What makes the OpenJDK more desirable than Sun's? Is it merely the GPL? Are there any performance gains? I don't use java, so I really have no idea and it would be nice if someone could enlighten me.

      Trying using the Sun distributed JDK on FreeBSD, NetBSD and other micro architectures like MIPS. Moreover, being completely GPL - Linux distributions will be able to bundle it in. The BSD's will also benefit from this and won't be treated like a redheaded step-child anymore when selecting a JEE hosting platform. Note, RedHat is a big player in the Java (JEE) middleware industry. So basically, it was in their best interest to see this through.

    • Re:What's the point? (Score:4, Informative)

      by Vectronic (1221470) on Thursday June 19, 2008 @02:45PM (#23861949)
      From what i understand, the advantage is that distributions that are (or try to be) 100% "Open Source" can now add this to their list.

      Ontop of that, it means that anyone and their dog can dig through it, and maybe even improve on it, plus being able to make better java applications knowing exactly whats going on...
    • Re: (Score:3, Interesting)

      by youngdev (1238812)
      It is my understanding that all of core java would be based on the OpenJDK going forward. Basically OpenJDK is SunJDK6.999 beta. SunJDK 7 will be the openJDK and SunJDK >= version 7 will all be open(gpl?).

      Someone please correct me if that is wrong.
    • Re: (Score:2, Informative)

      by sidnelson13 (1309391)
      Of course, we can search for enlightenment ourselves!

      OpenJDK FAQ [sun.com]

      Cheers!
    • Re: (Score:3, Informative)

      by j79zlr (930600)
      64-bit plugin for 64-bit browsers. For some strange reason Sun refuses to release one. The current icedtea plugin for my Gentoo amd64 install works about 50% of the time. Hopefully they can get that up to where it is more compatible
    • by drinkypoo (153816)
      My understanding is that if you use the OpenJDK, you gain access to variable-width text.
  • Spelling (Score:3, Funny)

    by blueforce (192332) <{clannagael} {at} {gmail.com}> on Thursday June 19, 2008 @03:13PM (#23862473) Homepage Journal
    He actually spells it "Ice T": http://en.wikipedia.org/wiki/Ice_T [wikipedia.org]

Whoever dies with the most toys wins.

Working...