IcedTea's OpenJDK Passes Java Test Compatibility Kit 271
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."
Re:Perfomance (Score:5, Informative)
Re:bfd (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.
Re:bfd (Score:5, Informative)
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.
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.
Re:Just use a glove (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.
Re:Ask Slashdot (Score:5, Informative)
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:Ask Slashdot (Score:2, Informative)
Re:Language Compatibility vs. Class Libraries (Score:4, Informative)
I don't know if Mono can ever catch up to the whole mountain range that
Re:What's the point? (Score:4, Informative)
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:What's the point? (Score:2, Informative)
OpenJDK FAQ [sun.com]
Cheers!
Re:bfd (Score:5, Informative)
Re:Just use a glove (Score:3, Informative)
Re:Language Compatibility vs. Class Libraries (Score:5, Informative)
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.
Re:What's the point? (Score:3, Informative)
Re:Really ? (Score:3, Informative)
Maybe you don't understand .Net? (Score:5, Informative)
Right now on my dev box I have 4 versions of
They run side-by-side without issue.
There is no forced upgrade. It's like saying that C wasn't predictable because C++ emerged.
Re:Perfomance (Score:3, Informative)
Re:Mono needs a similar testsuite. (Score:4, Informative)
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...
Re:Perfomance (Score:5, Informative)
Re:Maybe you don't understand .Net? (Score:2, Informative)
Developers dislike Java's way of deprecating old APIs, figuring it leaves cruft, but if MS had deprecated what they changed and made new versions I never would have had this issue. Then again maybe my company deserves their resources being wasted this way by letting my predecessor actually write a web page using
Re:Just use a glove (Score:2, Informative)
Bloat? (Score:5, Informative)
However you're singling out Java as the one that's bloated? Get real.
Re:Mono needs a similar testsuite. (Score:1, Informative)
Re:bfd (Score:3, Informative)
Re:Mono needs a similar testsuite. (Score:3, Informative)
For #1, it doesn't matter-- without runtime help you loose half of the power of generics. In either case you aren't gaining anything. Your company is still writing without generics. If a .NET shop wanted to work with 1.1 then they wouldn't write generics either... no difference. The problem is forward compatibility. You "could" write with generics and they could work with non-generified JREs. In the trade-off I would prefer the runtime benefits (et al) any day of the week.
For #4- you don't understand what you are talking about. For good uses of yield (or closures) go ask one of the millions of Ruby fans that are convinced its the best thing ever. Note that your example of "Who is John Galt" is stupid. You can write bad code in any language-- programming languages aren't meant to "fix" stupid.
For #5- you clearly don't understand how type inference works. This is still static typing- its just that the type is inferred by the compiler (obviously at compile time) instead of having the coder type extra, unnecessary characters. It is NOT a "variant" type or widened type. It is only syntactic sugar to save you some keystrokes when declaring and initializing in the same statement (which should almost be required). No one is arguing against types or interfaces, etc. This is only to help reduce some superfluous typing. And YES this is in C++0x as well.
Re:Mono needs a similar testsuite. (Score:3, Informative)
Re:Perfomance (Score:2, Informative)
I just tested it on Ubuntu. The fonts are not as attractive as with the Sun JDK. And the resident memory usage was about twice that of the Sun JDK.
Not sure about the speed. But first indications are that I will be staying with Sun's JDK.
Re:Perfomance (Score:2, Informative)
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.
Re:Mono needs a similar testsuite. (Score:2, Informative)
(1) Type erasure in java generics makes writing reflective code a nightmare.
(4) Support for iterators in the language makes them a lot easier to write
(5) - in your example, a is still strongly typed, it's just that you don't have to tell the compiler what it is. The dotnet rules wouldn't let you have an overloaded function such as callThisAmbiguousReturnTypeMethod that differ only in their return type, so this wouldn't be an issue.
It's also the only way to declare a variable with an anonymous type, e.g.
var x = new {Foo = "X", Bar = 0};
(and yes, Foo and Bar are also strongly typed)
Anonymous types can only be used within the method in which they defined, and are very useful at cutting down on the profusion of crappy little data type class that you'd otherwise end up having to write every time you need a simple tuple. Personally, I use them a lot for projections over LINQ expressions.
Oh, and don't forget c# lambda expressions which can be easily be decomposed into the equivalent expression tree.
Re:Mono needs a similar testsuite. (Score:2, Informative)