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."
Perfomance (Score:2, Insightful)
Re:Perfomance (Score:5, Informative)
Re:Perfomance (Score:5, Funny)
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: (Score:2)
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)
Re: (Score:3, Funny)
AFAIK, GP was making a joke.
Sincerely,
GP
Re:Perfomance (Score:5, Informative)
Re: (Score:2, Interesting)
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)
Re: (Score:3, Informative)
Bloat? (Score:5, Informative)
However you're singling out Java as the one that's bloated? Get real.
Re:Bloat? (Score:4, Insightful)
Re: (Score:2)
Re: (Score:3, Funny)
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....
Mono needs a similar testsuite. (Score:5, Insightful)
Re: (Score:2, Insightful)
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?
Re: (Score:2)
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: (Score:2, Informative)
Re: (Score:2)
Re:Mono needs a similar testsuite. (Score:4, Funny)
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: (Score:3, Insightful)
Java support for generics was made with a backwards compatability wrapper so that all the API's are still compatible with java 1.5. This is a really big deal in my day job, since our company still codes for 1.4. I think you can look it up and find that Sun will move generics into runtime when there aren't the worries about backwards compatability. Since
4. How is IEnu
Re: (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
Re: (Score:3, Informative)
You should read John Rose's blog [sun.com] for nice comparisons between .NET and the JVM. You give a perfect example of something that would cost .NET in performance, but that
Language Compatibility vs. Class Libraries (Score:4, Interesting)
Unfortunately most of them are complete bloat (e.g. Swing, NIO, logging
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.
Re:Language Compatibility vs. Class Libraries (Score:5, Funny)
> of important use cases, redesigned the class libraries to be much less "fluffy"
Somebody did just this [python.org] already.
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: (Score:3, Interesting)
Re:Language Compatibility vs. Class Libraries (Score:5, Insightful)
Re: (Score:3, Insightful)
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.
Re:Language Compatibility vs. Class Libraries (Score:5, Insightful)
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
Re: (Score:2)
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
Re: (Score:2)
Someone else already did this [trolltech.com] as well. :-)
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: (Score:2)
And if you think that's bad, take a POJO and run it through Apache Axis2's Java2WDSL then that WDSL through WDSL2Java to generate the client. The generated client code is huge, somewhere in the 2-3k line range.
Re: (Score:2)
Re: (Score:2, Insightful)
Oh come on. Java is definitely quite verbose, but no one would ever write that code like that.
This code example wouldn't even compile, these classes don't exist in any version of xalan.xslt that I can find, and it's not even using import statements.
import org.apache.xalan.xslt.*;
String xmlSystemId = new File(xmlFileName).toURL().toExternalForm( );
String xsltSystemId = new File(xsltFileName).toURL().toExternalForm( );
XSLTProcessor processor = new XSLTProcessorFactory().getProcessor( );
XSLTInputSo
Re: (Score:2)
That you don't know anything about software development, that is.
Apple (Score:5, Insightful)
Re: (Score:2)
Re: (Score:2)
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: (Score:2)
http://support.apple.com/kb/HT1856 [apple.com]
Re:Apple (Score:4, Insightful)
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.
Re: (Score:2)
Ask Slashdot (Score:2)
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)
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)
Re:Ask Slashdot (Score:4, Insightful)
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:3, Insightful)
There's no contradiction, although I admit that I could have been more clear. Java was Free enough that a substantial amount of Free Software was created for it. However, the majority of Free Software hackers steered clear, and that has hurt Java quite a bit (for essentially no benefit to Sun).
For example, even Sun-supported Gnome contains more Mono-based C# in it than Java. Free Software hackers generally used (and built) competing web technologies instead of using Java-based tools. You can get web h
Re: (Score:2, Informative)
Re: (Score:3, Insightful)
Re: (Score:2)
What's the point? (Score:4, Interesting)
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)
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)
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)
Someone please correct me if that is wrong.
Re: (Score:2, Informative)
OpenJDK FAQ [sun.com]
Cheers!
Re: (Score:3, Informative)
Re: (Score:2)
Spelling (Score:3, Funny)
Re:bfd (Score:5, Interesting)
What is it that is "wrong" in the platform? The fact that the base implementation is solid enough that few others found need to rewrite that wheel?
Re:bfd (Score:5, Insightful)
Re: (Score:2)
So is it really a matter of immaturity or wrongness? Or is someone going to claim that the issue is that Java just isn't in use enough?
Re: (Score:3, Informative)
Re: (Score:2)
Re:bfd (Score:5, Informative)
Re: (Score:2)
Re:bfd (Score:5, Insightful)
Which it is.
Could it be improved? Sure it could...name a single software product that couldn't be. But there are many billions of dollars of IT projects that depend on Java, so trying to pass it off as immature, incomplete, incorrect or insufficient is nonsense.
Actually yes (Score:2)
Yes, that is true.
It's also true that products produced with VB6 tend to be rather shoddy. But you appear to be unable to distinguish VB6, the framework and development platform, from the things people build from it.
Just what you'd expect from someone who can't even figure out how to register on Slashdot.
Re: (Score:2)
BTW, how many independent Perl implem
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.
mod parent up (Score:2)
GPL or not, based on Sun's behavior around their Indiana/OpenSolaris (That can't be called OpenSolaris because Sun said no)will pretty much kill whatever advantages going GPL/community driven may bring.
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:bfd (Score:5, Insightful)
Have you considered that Java is almost like writing an OS? A runtime byte code, compiled form multiple source languages. Almost every service of an OS provided in a portable way. (eg, sound, video, graphics, multiple portable widget toolkits, network access, file access, system tray access, and the list goes on...)
GNU Classpath is mostly compatible now. Much like Wine.
Re: (Score:2)
OpenJDK started with 96% of Sun's Java codebase.
Re:Really ? (Score:5, Funny)
Man! Was that joke ever funning circa 1997...
Re:Really ? (Score:5, Funny)
Man! Was that joke ever funning circa 1997...
Re:Really ? (Score:4, Insightful)
Why does it seem that every time the hardware guys give us more machine, the software guys use every last bit of it to do exactly what the previous generation of machines did, only the previous generation did faster?
Re:Really ? (Score:5, Insightful)
At least, if I had to guess, that's what I'd say.
Re: (Score:2)
it is because Apple controls the hardware thus promoting a tighter bonds between the two groups of people.
Re:Really ? (Score:5, Insightful)
Maybe it has more to do with the skill of the developers than anything else.
Re: (Score:2)
That's not true anymore. OSX has been getting slower and slower with each revision.
Hell, look at the requirements for Spore. Spore for XP requires 512 megs of ram, Spore for Vista requires 768 megs of ram, and Spore for OSX requires 1 gig of ram.
Re: (Score:2, Interesting)
I sit right next to a guy at work that went to the same university I did. However he's got 10 years on me. Both degrees are in Computer Science. Yet he knows a LOT more about E.E. stuff than I do. It seems the curriculum at our school got softer (pun intended) as the years went on.
I realize this at least and do my best to pick up bits and pieces from him and the other E.E. guys here at wor
Re: (Score:3, Insightful)
Re:Really ? (Score:4, Insightful)
I agree with the rest of the statement though. I think that the real problem is that too many departments are teaching using Java and the like, which are "industry standards" because too many students are looking at computer science as a gateway to a career coding JBoss apps for a bank, or working in IT -- basically a 4 year trade school.
Computer Science has about as much to do with IT as mechanical engineering has to do with working in a lube shop. Sure, you could do it -- but you should have been taught to do a whole hell of a lot more. If all you want to do, or can do, is the trade aspect then I'm not sure that an extended education in what is essentially applied mathematics is really the route to go, and those who want that advanced theoretical knowledge shouldn't have to have their class time watered down by the kid who is still in
Then again, what the hell do it know. *goes back to working in Quark*
Re: (Score:3, Insightful)
Memory is about $20-$40/GB. Disk space is down to about $0.30-$0.50/GB. CPU is about $0.01 per bogomip (hey, there isn't really a good measurement out there, so what the hell).
Yeah, let's teach a fantasy.
Re:Really ? (Score:5, Funny)
Re: (Score:2)
Re: (Score:3, Insightful)
Re:Really ? (Score:4, Funny)
Re: (Score:3, Informative)
Re:Really ? (Score:5, Funny)
The One True Language, beloved by all (Objective-C) also uses 2 GiB of RAM for "Hello World", but just because it needs to use that memory to cure cancer and feed starving children.
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:Just use a glove (Score:5, Insightful)
Re: (Score:3, Insightful)
Re: (Score:3, Informative)
Re: (Score:2, Informative)
Re: (Score:2)
Re: (Score:2)
But then, if you're complaining about how hard it is to install non-free software when you deliberately don't have the non-free repository setup... (Which is point-and-click in Ubuntu, by the way.)