Slashdot Mirror


IcedTea's OpenJDK Passes Java Test Compatibility Kit

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

11 of 271 comments (clear)

  1. Re:Perfomance by JimDaGeek · · Score: 5, Informative

    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.

    --
    General, you are listening to a machine! Do the world a favor and don't act like one.
  2. Re:bfd by pmontra · · Score: 5, Informative

    Actually, Sun's own codebase and a 4-5% of rewritten code passes Sun's compatibility suite.

    TFA is about that 4-5% which was encumbered by patents (? the article doesn't go into details) and has been rewritten to make all the JDK free. That should be enough to finally get Debian include Java in their distributions.

  3. Re:bfd by Anonymous Coward · · Score: 5, Informative

    So, Sun's own codebase passes their own compatibility suite. BFD.

    If after more than a decade, there is not a single, independent, compliant Java implementation, then there is evidently something wrong with the Java platform. What in the world are you talking about?

    There has been multiple compliant java-implementations for years now.

    IBM's JDK (which is their own codebase).
    and ORACLE's JDK (BEA JRockit)

    both of which passed the Java TCK and can claim Java compatibility and compliance.

    As for performance, the OPENJDK is based primarily on SUN's JVM code, hence it has the exact same optimizations (same HOTSPOT, and etc). Only a small majority of the code was replaced with open source alternatives which doesn't affect performance.

  4. Re:Just use a glove by sidnelson13 · · Score: 5, Informative

    OpenJDK came to surface due to pressure of the OS community, to be to fulfill OS purists' ideals. For example, being able to embed the JDK into OS Linux systems.

    OpenJDK is an effort backed up by Sun also, so that is no impasse here.

    This is great news! I can see faster and greater improvements coming to the JDK having it open.

  5. Re:Ask Slashdot by The+End+Of+Days · · Score: 5, Informative

    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?

  6. Re:Language Compatibility vs. Class Libraries by AKAImBatman · · Score: 5, Informative

    Source source = new StreamSource(new File(xmlFileName));
    Result result = new StreamResult(new File(xsltFileName));
     
    TransformerFactory.newTransformer().transform(source, result);
    Was that really so hard?

    If the code you posted is the best obfuscated Java code you can come up with, then I'm impressed. I've seen MUCH worse Perl, C, and even Python. Your code was at least understandable (albeit unnecessarily obtuse), thus demonstrating the unexpected readability advantages of the Java language.

    P.S. Import statements are your friend.
  7. Maybe you don't understand .Net? by encoderer · · Score: 4, Informative

    For the last 2 years I've been doing Python work with a little PHP but the 2 before that were spent almost exclusively in .Net (C# and IronPython).

    Right now on my dev box I have 4 versions of .Net.

    They run side-by-side without issue.

    There is no forced upgrade. It's like saying that C wasn't predictable because C++ emerged.

  8. Re:Mono needs a similar testsuite. by Anonymous Coward · · Score: 4, Informative

    Even if you discount Java's superior performance,
    I'm pretty sure .NET has Java beat in several areas. For example, generics. In Java generics are just syntactic sugar for casting everything from java.lang.Object to something else. Each cast is a runtime type check, which comes at a performance penalty that I don't believe is trivial. .NET actually generates unique code without that casting.

    superior APIs that are decades ahead of anything at microsoft,
    APIs, maybe, I don't know, but language features, definitely not. I don't use C# really, but even as someone with only a passing familiarity with it I can name a few things about it that make it seem much more productive to work with than Java:
    • Support for generics is "real" rather than an afterthought, mentioned above.
    • Using C# delegates for closures is syntactically much nicer than anonymous classes in Java.
    • Accessors in C# actually make syntactic sense, where in Java everybody writes ugly statements like foo.setBar(true) (and it gets more complex, verbose, and uglier than this example, too).
    • C# has yield iterators, i.e. real iterators like in Python. Try writing an iterator in Java for a tree structure. You pretty much have to think about breaking it into a state machine. In a language that has real support for iterators it's as simple as writing your standard-issue traversal function.
    • C# has type inference in declarations with an initializer, eg. var foo = new SomeVeryLongClassName() and foo ends up with the right type
    These are just a few. I'm sure people who are more familiar with C# than I am can name more.

    For the record, the kind of coding I do is much more geared towards lower level stuff, so I don't use C# or Java much at all. But I'm aware of the features of both, and I definitely would say hands down that between the two major high-level, VM languages, C# is the better one. It is definitely in the best interest of free software and open source to replicate some of its strong points over Java. Unfortunately Microsoft has a credibility gap, so a lot of people dismiss it without being aware of its features. Mono is an okay start, but still lacking...
  9. Re:Perfomance by Anonymous Coward · · Score: 5, Informative

    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.

  10. Bloat? by ttfkam · · Score: 4, Informative

    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.

    --

    - I don't need to go outside, my CRT tan'll do me just fine.