IBM Collaborating With Open Source Java Project 149
lord_rob the only on writes "According to news.com, IBM has begun participating in the open-source Java project Harmony and intends to contribute code to the initiative, according to a Big Blue executive. At this point, IBM's participation is limited to thoughts on design, but the company has plans to contribute code to the project in the future." From the article: "We really like to see the community get started, and they're still working out the rough edges of what they want to deliver. And we didn't want to disrupt that,"
Eclipse? (Score:4, Informative)
Re:Eclipse? (Score:5, Informative)
In fact, fedora core 4 comes with a natively compiled version of eclipse and a 100% open source jvm implementation.
Still needs quite a bit of work, but has definetly come a long way
Swing? (Score:5, Informative)
Re:Eclipse? (Score:3, Informative)
Re:Talk about fragmenting the standard... (Score:5, Informative)
This project is implementing a Java Virtual Machine. How in the world does this fragment the Java Language any more than let's say Apple or IBM's many JVM implementations?
Now, if Harmony intends to "extend" the Java Language by lets say, adding new keywords, just as Microsoft did with J++ at one point, then you can start worrying about Java Language fragmentation (in which case Sun would not allow Harmony to call itself a Java(TM) Virtual Machine).
JVM versus platform (Score:1, Informative)
The language is not simple, but it is well documented and understood. Creating a JVM which is absolutely correct and compliant with Sun's is not hard.
What is hard is implementing the class libraries. These are huge, beastly, and not all that clearly documented. And unless you count gnu-classpath (you shouldn't), there's only one implementation of it. These, the class libraries, are where the Write Once Debug Everywhere problems come from.
However, here's the trick: The class libraries are portable. They're written in Java! That is, if you have a compliant JVM, you can probably run the same class libraries any other JVM can. In the bad old days of AWT, the class libraries were very closely tied into the JVM and were in large part written in nonportable C. This isn't the case anymore.
So: Let's say Harmony gets big. Let's furthermore say Harmony goes with some kind of crazy gnu-classpath workalike which isn't quite the Sun Java class libraries. This might be okay! We can almost certainly just install the Sun Java class libraries on Harmony, or the Harmony class libraries on sun's jvm. All it would take is for Sun to loosen up a little about their class library licensing. Once Sun realizes that they're at real risk of fragmenting the community and having the entire linux/open source world switch to their own homebrewed class library if they don't do so, they might consider it.
Bad sign for Sun (Score:3, Informative)
Re:Neat (Score:3, Informative)
If IBM had a complete Java implementation, then they could release it as open source, but if it were modified by the community then it would have to be re-certified as Java before every release.
No, you're not quite right. (Score:2, Informative)
Platform fragmentation is as, or more important than, language fragmentation*. A language cannot stand alone. You need libraries. Platform fragmentation is what Sun is worried about right now, not language fragmentation. The JVM is not even part of the "open source java" debate, since open source JVMs already exist and Sun is more or less encouraging them!
Please see my other comment here. [slashdot.org]
* Language fragmentation can still happen if Harmony chooses to implement different JSRs [jcp.org] than Sun does for some reason. However it is incredibly unlikely that this would be a bad thing. As long as Harmony stays within the accepted protocols for extending the Java language, and keeps any experimental/unapproved-JSR features cleanly quarantined within the -XX "pragma" flags (both of which things, Microsoft did NOT), this will be fine.
Re:IBM could create Harmony overnight (Score:5, Informative)
Because IBM's JDK wasn't written from scratch. It's based, to some degree, on Sun's code. I don't know how much Sun code is in IBM's JDK, or the exact details of the license between Sun and IBM, but I know IBM's JDK is subject to Sun licensing.
Re:IBM could create Harmony overnight (Score:3, Informative)
Re:A question about Java (Score:2, Informative)
Can someone inform you why SUN will not allow Linux distros distribute java? I know it about licensing but what is the logic behind this?
The last thing Sun wants is Linux distros being competitive. The "let's support Linux" war was lost at Sun a couple of years ago... Java and its licensing is a weapon in that war. Why make it possible for Linux distros to legally distribute Java easily when it would take sales/support money away from OpenSolaris? *That's* why an open source Java is needed... or preferably, fuck Java altogether and use something better designed and more open... like Mono (whose spec is at least standardised with an international standards body... something Sun refuses to do with Java).
Re:IBM could create Harmony overnight (Score:4, Informative)
Re:IBM could create Harmony overnight (Score:1, Informative)
IBM has two Java offerings. One is the IBM JDK you can freely download off their web page, http://www-128.ibm.com/developerworks/java/jdk/ [ibm.com] as "Java Standard Edition" for Linux and other platforms.
Indeed, this version is an adaptation of the source code found in Sun's JDK. As it is easy to get, up to date (and the only really working JDK for ppc these days), this is the one (of the many Java VMs) provided in, say, Gentoo.
However, IBM is a big company, which sometimes buy other, smaller companies. Somewhere along the way, the acquired a clean room implementation mysteriously referred to as J9. This is what they use on AIX, for one. To the world, it is being marketed for embedded systems, as a Micro Edition Java.
When I checked a few months ago, you could only get it as part of other IBM offerings, such as their WebStudio suite.
The two can easily be distinguised by a java -version. The Standard JDK will identify itself as
Classic VM (build 1.4.2, J2RE 1.4.2 IBM build cxia321420-20040626 (JIT enabled: jitc))
whereas the J9 will look something like
J2RE 1.4.2 IBM J9 2.2 Windows XP x86-32 j9n142ifx-20041102 (JIT enabled) J9VM