Wed, 11 May 2005

Project Harmony

There's been a lot of fuss about Project Harmony this week, not to mention renewed efforts in the Gnome language wars, OO.o madness, and the like.

"Harmony" is a funny name for a project, not only because of the name's historical Qt connection, but also due to the Orwellian requirement of always naming in opposition to true meaning. I'm just making a joke here; the truth is that while Harmony is, as one might expect, showing us the various fault lines in our community, it also does provide a reasonable promise of achieving its namesake goal.

So what is it? Right, nobody knows what it is yet, because that is the Apache approach. If you're coming from a different hacker culture this will probably seem completely alien. My impression is that the Apaches are much more formal than most of the big umbrella projects out there, and a sub-project like this starts with an open discussion about directions and goals before moving on.

I think the Harmony project offers some great things to the free java efforts. At the moment, from my point perspective, they are mostly "soft" things -- increased awareness, better PR, and insider access to the JCP and the TCK. Also coming along with this is a concrete example of cooperation between the FSF and the ASF.

In addition to the license harmonization rant I usually give at this point, there is another point about convergence in the free software stack. One of the big benefits of a technology like Java is not a specific language feature, but rather that it lifts the common denominator so that old dreams, like universal use of libraries and shared code, become reality. So, for instance, you find Eclipse using Lucene and Tomcat, ostensibly "server" technologies; and it turns out to be trivial to do.

So, hopefully Harmony can show us the way forward in terms of unifying some of these divergent communities. The more we can share efforts, and concrete realize we're largely working on the same bigger goals, the stronger we are.

On the PR front alone this project is already a success.

Whither and dye

I would like to take some time out here to explain the whys and wherefores of some of the work we've been doing.

There is a lot of Java code out there. There is Eclipse, which is not only a huge IDE, but also a bunch of other things besides (like a future video editor). There's also all the Apache code, jonas, OO.o, etc.

Those of us hacking on gcj have put our energy into making these applications work. This seems fairly obviously useful, as it lets us ship them on free platforms.

(Oh, by the way, you should read Planet Eclipse.)

Currently we -- and by this I mean the very small group of us who work on gcj at Red Hat -- are thinking we'll tackle a Mozilla plugin next. That will entail making the security model work, and making AWT more solid. But, this is just the current idea. You can influence this plan.

Tofu Frying

Uraeus thinks that we don't publicize our Java work enough, but I think the problem is that we haven't put much effort into making inroads into other development communities like Gnome or KDE. That has turned out to be a mistake on our part, at least insofar as use of gcj on the desktop is concerned. Maybe I should have stayed a Gnome developer all those years ago.

As far as the multilingual thing, appearances may be against java, but I think Sun has always had some interest in this. There's a Groovy JSR, as I remember, and I thought I heard that Sun funded Groovy to some degree. Also I recently found out that Jython is not actually dead.

gcj, the irrelevant menace

Miguel makes a number of claims about free java implementations. Some of it is true -- Sun's free beer strategy is a notable winner, and other companies wanting to successfully fight against free software should take note. The rest of it, well...

Into the Fray

Seth is pretty much correct about the language differences, I think. Personally I am a checked exception person, but I can see why someone would prefer the other.

As for integration to native code... of course, gcj rocks here. You just write C++ code. Or, you can use GDirect if you want to go that route. The technology for all this kind of thing is just floating out there, waiting to be used. You can use libffi for simple things like this. Or if you are into something heavier, try LLVM.

Seth is mistaken about the 1.5 language, though. The Eclipse compiler already supports it. gcjx, the front end rewrite, is coming along nicely. Classpath has a generics branch where much of the new work has been done; in particular, all the collections classes are now generic. There is still more to do, but this is one of my major goals to accomplish this year.

There is a good question lurking about, which is why Red Hat Gnome hackers haven't been gung-ho for gcj. I'm not really sure why this is; I live out in the distant hinterlands, and I don't really have the sort of daily contacts with these guys that are so beneficial to, umm, brainwashing. But surely it can't be anything we've done :-).

Oh, oh, oh

I've seen several references to the FSF announcement about OO.o and free java implementations (though the new, less insane, version is now up). I've also seen a few references to the supposed community anguish over the shocking news that Sun would put java code into their office suite.

Time to get a grip folks -- slashdot is not always right. Caolan has it all under control.

posted at: 19:06 | path: /software | permanent link to this entry