IBM Collaborating With Open Source Java Project
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,"
This should line up with their efforts with Eclipse, too. I might get into a little Java programming if the environment were open-source.
antipaucity
What is the relationship between Harmony and Kaffe? Anybody know?
Constitutionally Correct
Looks like ~not~ open sourcing Java is fragmenting the Java language after all!
Agile Artisans
- keep IBM from taking the language in directions other than Sun wanted to take it in, and
- make the JCP a democratic and open process whereby any involved company can take the language in any direction they want.
This isn't because Sun is evil or malicious or anything; they're just confused about what they want. They honestly want Java to be an open, democratic standard, and they honestly want to control it.The "control it" side of things keeps winning, because in the end Sun makes the JVM so they can technically decide what goes in and how it gets distributed.
This is why I think Harmony is interesting. Sun will no longer control the only good JVM, and if Sun can't stay at least as good as Harmony, then Sun will no longer control the primary JVM. This makes the JCP's democratic ideals a lot more attainable because Sun's just lost their biggest degree of control. IBM trying to weigh in on the side of Harmony, given this context, makes a LOT of sense. They can begin to grow the language how THEY wanted again.
This is going to be good for IBM, good for open source, and in the long run good for Sun once they realize that trying to control Java too much isn't really in their best interest.
"IBM's participation is limited to thoughts on design, but the company likely will contribute code to the project".
I put this through BabelFish's translator. Apparently, this could be taken to mean:
"A big company is going to do little to help out, but is willing to share credit for an open source project."
Me? cynical? Never!
What are you eating? isItVeg?.
After the FSF call for volunteers, GNU Java compiler / VM has come of age. It was reported here, too. RedHat Fedora Core 4 even includes a native version (doesn't depend on JVM, but runs as a "normal" binary) of Eclipse, compiled with GCJ.
Even if java isn't open source there are so many different flavors of it. It's been changed so much to allow it to fit anywhere, phones, idcards, computers. I think they already have a split java language! http://www.kunae.blogspot.com/
...will help prevent code like this, too. Removing useless code can't help but improve performance, not to mention readability...
[plug]
Support your local open source static code analysis utility!
[/plug]
The Army reading list
Some sort of Open Source dating service?
In Soviet Russia, I ruled you
IBM says "this is what we want, now get on with making it for us".
The Richard Stallmans of the world have long wanted Java to be an open source language, while Sun Microsystems has said that they want to be the single point of control for the language. The biug lawsuit between Sun and Microsoft was about Microsoft making unauthorised changes to the language spec. Through the Java Community Process, Sun has allowed developers at large to make suggestions and improvements to the language if Sun approved of them. Sun controls the specification of the language and the reference JVM implimentation. The battle isn't about the JVM being open source, it's about the language specification. Sun's fear is that by opening the specification, someone's going to say "You know, I've always felt the language should have pointers", and the language will fall into Creeping Featurism the way C++ did. The recent (1.5) introduction of template-like behavior, at the demands of the "more features" crowd is already a step in that direction. No matter how you slice it, it seems we're doomed to a Java with more and more new features (remove run-time array bounds checking for performance, anyone?) and more and more fragmentation.
No folly is more costly than the folly of intolerant idealism. - Winston Churchill
GCJ still only provides limited support for Swing. I don't think it can be said that it has "come of age" until that support is there in a form that at least remotely resembles javac.
That is how MS-word became popular since M$ allowed Word to be pirated. The same applied to Windows.
Yet, IBM loves it and is now, apparently, committing to it. Once IBM backs an open-source product (e.g. Linux) and ships it to customers, then IBM ensures that the product performs flawlessly. Who can doubt that IBM is a significant contributor to the high-reliability of today's Linux build? The strength of IBM is its commitment to its customers.
What is interesting is that, from a business perspective, there is no need for Harmony to be fully compliant with Sun's closed Java standards. The route to divergence is to (1) define a new language called "Harmony", (2) place it with a standards body, (3) maintain full compatibility with only the current version of Java (in order to support all of IBM's current customers and developers) but deliberately diverge from compatibility for future versions of Java, (4) arrange for IBM to jettison use of future versions of Java and to fully utilize Harmony, (5) generously borrow the best concepts from Java while ensuring that the word "Java" is never used (in order to avoid a lawsuit), and (6) build support for Harmony in GCC. This strategy could work.
C# is a ripoff of Java and is quite popular.
There is nothing magical about the Java name. Just consistently use the name, "Harmony", on this proposed Java variant. Everyone will know that "Harmony" is Java -- plus additional stuff. Even if "Harmony" is only 98% compatible with future versions of Java, "Harmony" could grab the software development if the open-source community backs it.
And for those of us who don't read the article and don't know what Harmony is:
Harmony is the Apache Foundations project to create an open source edition of Java SE (Standard Edition).
Not to mention the sablevm project, who already collaborate with Classpath...
IBM is going to have to be very careful about this. Their JVM is based on Sun's source code, so anyone who's come within spitting distance of it will have to be kept far, far away from this project.
Son of SCO anyone?
Harmony.. Java.. whilst you wrestle with what you ought to be and the collection of features you might someday have
Resistance is futile..
You too will become one with the Microsoft.. once you have kids, wives, car payments, and mortgages.
Join us, won't you
Cogito Ergo Sum
well someone needs to fix java before people find D and realize how totally shitty java is...
One of the things muddling any discussion of this type is people who forget the Java VM, or rather the Java language, and the Java platform, or rather the language plus the Java class libraries, are very different.
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.
Good. This way a few years from now, SCO, or whoever else has bought the rights to the decrepit old proprietary UNIX I mean Java codebase can sue IBM for allegedly contributing code they didn't have the rights to to Harmony.
I mean, nobody could build a Java virtual machine without copying code, right? That would be an impossible superhuman feat!
Secession is the right of all sentient beings.
And can be built and run on a completely OSS Java stack using GCJ, thanks to the work of a whole bunch of guys at Red Hat.
It ships with Fedora Core 4 as the main IDE and Red Hat sells commercial support for it as Red Hat Developer Suite.
I was beginning to doubt that Harmony would ever get out of the starting gate, but with IBM cracking the whip, maybe they have a chance.
There has been some backlash over the way the Harmony project is being managed, some of it kinder than others.
Personally, I agree with Charles Miller - start the project with some working code. down the road, you may have to refactor, but that's a part of software development.
I say we take off and nuke the entire site from orbit. It's the only way to be sure.
I think this is a very bad sign for Sun, because it sound to me like IBM hedging its bets for what might happen if Sun is bought out or sells Java. IBM's java virtual machine is based on Sun code, so if Sun sells the rights to Java then IBM is beholden to somebody else (maybe even Microsoft, who would buy Sun just to finally kill Java). As sad as it is to say, I think IBM sees the writing on the wall that Sun just doesn't seem like the reliable bet these days.
Lets see, IBM is already drinking the Java Kool-aid, IBM is the main force behind the open source project Eclipse, and IBM abandoned their own proprietary webserver in favor of apache awhile ago. So is it really that big of a fucking surprise that IBM would be interested in Harmony? I think not.
This is only the news if you are too stupid to think.
If you'll look at harmony's website, you'll see that they aren't just implementing the Java Virtual Machine as you put it. They are implementing J2SE. J2SE is not just a language. It is a platform.
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.
* Language fragmentation can still happen if Harmony chooses to implement different JSRs 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.
IBM already has a complete JDK which actually used to be much better than Sun's in terms of efficiency etc. (not sure how it compares right now). They could just release the whole thing as F/OSS under the new JCP rules, and create Harmony overnight. Why have they not done this yet?
The GNOME desktop has been looking for a managed language to make app development faster/better. Does the Apache license cause problems for this? A lot of people don't care if the FSF cares, but what does the FSF think about the Apache license?
It would seem IBM's motive is simply to stop development of their own JVM. They license Sun's code, of course, and then change it to no end -- resulting in numerous IBM-specific bugs and less compatibility than any other JVM I've used.
My guess is IBM wants to get into Harmony and drive it where they want it to go without doing as much of the work -- at least in the long run.
Also, it seems strange that IBM is worrying about Harmony when there is as of yet no sign of a Java 5 IBM JRE. IBM's site has articles on how to use various backports to get Java 5 features on Java 1.4 rather than just providing a Java 5 like every other JVM vendor. This is similar to GCJ, etc, which do not provide anything like full recent JVM version support as they're busy rewriting everything from scratch. Sorry, but for the real world I can't see using anything that does not provide Java 5 support right now.
Once I found the Harmony site from someone else's post (hint: it's in the Apache incubator, not a full-fledged project yet), I saw this in the FAQ:
So, it sounds like a cooperative deal between various players. I've been hoping for an OSS JVM because there is no Java for some of the platforms I use. Having a few big-name drivers behind it will definitely help.
Constitutionally Correct
Simple - what happens if the platform goes away? What happens if microsoft moves away from .NET, and you want to move to a new platform (PowerPC for example).
Who gives a crap - I have never touched the Microsoft .Net runtime. You don't need Microsoft anything to run or use Mono.
Hell, what happens if 20 years from now you find you need an old tool you made in C#? Will it still work? Will there be a compatible .NET run-time for 256-bit computers?
You re-compile Mono for the 256 bit computer?
it is called open Source for a reason - it is open. Nothing ties mono to anything else, unless you argue patents, which could be applied to any other VM implementation as well so it is basically a moot point.
IBM has absolutely the worst history with software as any company can have. They have no idea what they are doing when it comes to software. They have a bazillion dead projects lying around.
I have even worked on some of their projects. They're just scatterbrained. Some good people mixing with complete morons altogether with no direction at all.
All this says to me is that Java is a lost cause.
It's no secret that IBM's jvm performance beats the crap out of the others' namely BEA and Sun. They've been exploring ways to get their jvm out in the community but not as an "alternative" to Sun's (like BEA's jrockit). They want the top spot, and they have the better product. They don't want to burn bridges and appear like they're "fragmenting" the Java space by releasing a mostly-compatible VM that is performant but has its own quirks (somewhat like Eclipse/SWT vs. pure java). Their jvm is also optimized for IBM hardware and AIX/Linux, so community adoption would put serious pressure on other vendors like BEA and Oracle as they would now have to certify compliance against IBM, not Sun anymore because the market decided, not so called "standards".
The only technical problem is that it's not as reliable or stable as Sun's VM... but that's mostly a quality issue that can be ironed out as the community pounds on it like it did for Eclipse.
Open sourcing their VM will get them one step closer to "eclipsing" Sun. Eclipse is not an IDE, it's a STRATEGY!
Not mono but "the original" without regard to open source or not, and I was horrified.
.net class library is a horrible mess, C# has awful style and features. For quite normal file handling stuff I had to resort to the JNI equivalent to bind WIN32 API calls. I can't stand the getters and setters, the capitalized method names, the absense of checked exceptions, and operator overloading (way too unclear, already in C++ we avoided it like the plague).
All good style from the Java world (that I have grown accustomed to after 5 years of java, done 10 years C++ before that) is gone, the
I doubt that mono, being a copy of C#, is much better.
Sun actually supports Harmony and said so the day it was announced - VNU has it wrong (as usual). Congratulations, you found the only report that neglected to mention that both the senior Sun engineer responsible for Java strategy and the person responsible for future open source strategy at Sun both expressed support for harmony at a level pretty similar to IBM's support ("jolly good, and we may contribute at some point in the future"). While Gosling's misreported off-the-cuff comments make for good tabloid sensationalism they don't represent Sun's official view.
Back to old AWT and it will be 100 times! faster & easier than any ass-slow Swing & Azureus .
I think the idea behind open sourcing Java is good (be it the default JVM, the Language (?) or the platform (libraries)).
.net what open source Java would be to Java.
/. story) and allow it to be used to extend devices using simple event handlers and libraries (email me when a recording finished etc).
They have stated the issue is complex, and have open sourced a heap of good stuff, including their Solaris, which has had limited exposure, but what has been seen is awesome, and I am suprised many more slashdotters don't rave about Solaris 10.
IBM have also open sourced a lot of stuff, however cloudscape and their voice work is less fundemental (and both built on Java anyway).
Java is a very important platform, and branding and selling the platform to device manufacturers (I have started seeing mobile savvy teens talk about which version of Java their phones have etc).
Keeping this platform controlled and strong is important. Mono isn't to
Gosling himself says he is on the fence about the idea, and wants to see it happen, the only thing I find peculiar is it only seems to be IBM blowing the trumpet about this.
Personally I would like to see all the internal Java dev efforts better used to further Java adoption in devices (like home media devices, see recent
#hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com