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."
How about performance. It is a great milestone, it is, but if it is too slow it isn't ready for prime time.
alias possession='chmod 666 satan && ls
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.
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?
It's a simple matter of complex programming.
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.
Man! Was that joke ever funning circa 1997...
It's a simple matter of complex programming.
Languange compatibility was never the main problem - it was class libraries. Java has a mountain of class libraries.
...). 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?
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.
Sweet. Maybe was can start getting Java VMs on the Mac less than a decade after they're released now.
Thomas Galvin
Man! Was that joke ever funning circa 1997...
Yes, nowadays everyone has the 2GB of RAM, due to Windows Vista, so it isn't a problem.(1)DOCOMEFROM!2~.2'~#1WHILE:1<-"'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"
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.
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.
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.
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?
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.
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.
I had 2 GB of RAM you insensitive clod.
Thank God for evolution.
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?
mcgrew's razor: Never attribute to stupidity that which can be explained by greedy self-interest
Because each generation of "software guy" becomes n+1 generations removed from being a hardware guy himself. That is to say, the tools become "better" to make programming "easier" for people who aren't also electrical engineers.
At least, if I had to guess, that's what I'd say.
Don't thank God, thank a doctor!
When information is power, privacy is freedom.
Question: How long did it take Wine to come up with something mostly compatible with Windows? Fifteen years?
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.
I'll see your senator, and I'll raise you two judges.
You forgot the corrolary to Moore's Law, Which is Gates's Law: Every 18 months, the speed of software halves.
http://en.wikipedia.org/wiki/List_of_JVMs
Javascript + Nintendo DSi = DSiCade
I was under the impression that OpenJDK was the Sun JDK7 project.
GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
He actually spells it "Ice T": http://en.wikipedia.org/wiki/Ice_T
If you do what you always did, you get what you always got.
You don't realize (or maybe you do) how accurate this is. As much as I hate to admit it, I'm a perfect example.
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 work. But it does disappoint me a bit that I didn't get the same level of education as my co-worker.
Sure they could the Cray T90 came out in 1995 with up to 8GB of ram and the Y-MP M90 came out in 1992 and had up to 32GB of ram, the T3D came out in 1993 with up to 64GB of ram. Basically your run of the mill supercomputer had several times that much ram by the mid 90's =)
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
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.
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).
.Net.
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.
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.
It's a simple matter of complex programming.
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 hosting that includes toolkits based on PHP, Perl, or Python from any number of sources, and for ridiculously reasonable prices. You can then use these accounts to host sophisticated Free Software applications. Java should have done much better in this space, but Sun's licensing precluded that.
Free Software hackers used (and built) competing tools for creating desktop applications as well. Heck, one of the most popular Java-based desktop applications is Eclipse, and because it is based on SWT it isn't even pure Java.
When you think of the time and effort that went into the various Java replacement toolsets like gcj, Harmony, GNU classpath, etc. it is pretty clear that Sun wasted a great deal of Free Software effort that could have gone towards making Java that much cooler. It will be interesting to see what happens to Java now that a 100% Free Software version is finally available.
Java would almost certainly be a cooler platform today if Debian (to give an example) would have included it in main years ago, or if the source would have been available for a decent, up-to-date port to the BSDs and other niche platforms. Java was an inferior choice for even the less zealous of the Free Software community simply because you couldn't count on it being available. gcc, as an alternative, is available everywhere. Heck, Python is available everywhere. Java's write once run everywhere promise has been broken for years for people that are interested in platforms outside of Sun's narrow scope.
If it weren't for the Free Software that grew up around Java it would not be a viable platform today, plain and simple, but that doesn't mean that Sun has done a particularly good job encouraging Free Software hackers to use Java. A lot of opportunities have almost certainly been missed.
Thanks for encouraging me to spend some time making my point more clear. I appreciate it.
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.
USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
Don't you think he has more knowledge than you because he has been working the last 10 years and learned new things? After all, you don't learn everything in a university.
"Die endgueltige Teilung Deutschlands - das ist unser Auftrag." - Chlodwig Poth
Maybe it has more to do with the skill of the developers than anything else.
Badass Resumes
If you can design the logic circuits, you should be able to code. Had "computer science" even been developed as an independent discipline when they were building the Apollo guidance systems? I don't know the answer to that.
.com mode.
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*
the JDK7 project builds it source from it and adds in all the propitiatory software it is still in beta
null
I don't remember saying anything about faster. I said its more feature-full, which is true. I can run emulators for systems like the Playstation. My games are prettier and have more features. My word processor checks my spelling and grammar as I type. My IDE checks for syntax errors, displays possible methods to use, compiles documentation, checks my coding for various coding standards. I'm streaming, transcoding, and playing video. I'm doing video chat. You have web apps giving you a more user-friendly experience, like gmail. Granted, a lot of these things were possible or even implemented in '98, but were they widespread, stable, useful, and feature-full? I'm sure you could make an argument that you're doing the exact same things on your computer today that you were doing 10 years ago, but only if you generalize it to a degree that it becomes meaningless ("coding", "writing a document", etc).
.Net remoting framework often generates overly-verbose network traffic compared to something that you wrote using plain sockets. But at the same time, in addition to being quicker, you also get strong typing, and the libraries take care of making sure the data you pass between layers is appropriate.
Your comment about having more memory is wrong. My programs didn't crash because I didn't have enough memory. They crashed because they were shoddily written and didn't do a lot of stuff that modern languages and programmers do as a matter of course. I mean, C++ programmers make heavy use of RAII and smart pointers these days. They slow down the program but they prevent memory leaks. C# and Java have garbage collection to do the same things. Most modern languages have containers that do bounds-checking automatically. Thats slower than if you just threw the input at it. More validation, etc.
And yeah, my OS is better these days. Thats an improvement in the OS. And some of those improvements take *drumroll* more processing power, because bugs need to be coded around, and more checks and validations need to be performed.
To be sure there are some things that are designed to save developer time given programming time. The
Its just irritating to have people repeatedly say that developers are lazy and writing inefficient code. These days I worry more about the code I'm writing than I was in the past. And most developers I know are the same. You may be able to get your super-awesome "bloat" free programs, but they'll probably take twice as long to develop with less features, be full of bugs, crash all the time, and leak like a sieve. The 90's was not the golden age of computer software that a lot of people make it out to be.
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.
BTW, how many independent Perl implementations are there?
None. There are also no "Perl compatibility kits". Perl is licensed under the AL, so if Larry Wall falls off a cliff, commercial users can continue to use it. Perl doesn't pretend to be something it is not.
So, what does your question have to do with Java?
Put down the crack pipe. Java still has at least 3-4x as much penetration as .NET in the enterprise alone, and in community open source .NET barely makes an appearance at all. Microsoft's marketing should not be confused for fact.
Sam ty sig.
I also disagree with the great cost of the Java compatibility kit, but having it there at all is a great idea. It's basically one big unit test harness, and we all know unit testing is a good thing when done right. So now Sun have a unit testing framework they can use to ensure new releases really do maintain backwards compatibility, and one that alternate implementations can use to have a reasonable confidence their version of Java actually works.
Sam ty sig.
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.