I must disagree strongly with your second point that "on the face of Swing being portable, that's really quite worthless to anyone but "rapid" UI developers. Users *hate* multi-platform UIs, because they invariably look, feel, and act foreign. Your Swing app may be a great Windows app, but the behaviour of widgets, design choices, layouts, etc will be totally alien on GNOME or OS X. It results in an app that feels like a giant hairy wart on otherwise excellently consistent and well designed platforms."
This need not be the case at all. You can easily customize your Swing app to behave like a nearly native application. For example, on Mac OS X the menu bar can appear in the appropriate place at the top of the screen while remaining at the top of the document window. You can create your UI in such a way that the menu item is "Quit" on a Mac and "Exit" on Windows with the expected accelerator keys set correctly for each platform. You can interact with native libraries and widgets. You can have the installation experience be correct on both platforms.
Of course, there are still issues that need resolving, but it is a shame to see these early views of Swing persist. We've come quite a ways since the early days of "Swing is slow" or "Swing is ugly". I've written articles on this for O'Reilly's MacDevcenter and for java.sun.com and Joshua Marinacci has, more recently, written a nice series on making your Swing apps feel more native for java.net. The point is that you can write a single codebase that runs nicely on many platforms but that you will have to add code that addresses the needs of these platforms.
I agree with Dan (mostly), and I think that Edd is missing several points.
First, I really don't think users care a whole lot about consistency. Look at Linux applications; you have loads of different looks and feels all over the place, with no consistency at all. What I care about, as someone who uses Linux, OS X, Windows, and others, is that the same applications be available everywhere, and work the same way on every platform.
But I think there are some bigger cultural points. Did anyone in the Java community cry "foul" when Perl developers decided to clone the Lucene search engine? Did anyone cry foul when Ant and JUnit were re-implemented in any number of different languages?
Sun is rightly criticized for wanting the appearance of open source, but not the substance. But the same thing is going on here. If the developers of Evolution didn't want other people to see the source code, they shouldn't have released it. If they didn't want other people to reimplement it, they should have patented the ideas and copyrighted the user interface. Of course, that's anathema to the open source community, and rightly so. But if you're going to be in the open source community, you've got to live with the consequences.
There's certainly an element in the Linux community that likes to consider itself "open source", but only if the right people are playing in the sandbox. Unfortunately, that's a recipe for failure. And if Linux is going to succeed as a desktop OS, it's got to get beyond that.
First, I really don't think users care a whole lot about consistency. Look at Linux applications; you have loads of different looks and feels all over the place, with no consistency at all. What I care about, as someone who uses Linux, OS X, Windows, and others, is that the same applications be available everywhere, and work the same way on every platform.
But I think there are some bigger cultural points. Did anyone in the Java community cry "foul" when Perl developers decided to clone the Lucene search engine? Did anyone cry foul when Ant and JUnit were re-implemented in any number of different languages?
Sun is rightly criticized for wanting the appearance of open source, but not the substance. But the same thing is going on here. If the developers of Evolution didn't want other people to see the source code, they shouldn't have released it. If they didn't want other people to reimplement it, they should have patented the ideas and copyrighted the user interface. Of course, that's anathema to the open source community, and rightly so. But if you're going to be in the open source community, you've got to live with the consequences.
There's certainly an element in the Linux community that likes to consider itself "open source", but only if the right people are playing in the sandbox. Unfortunately, that's a recipe for failure. And if Linux is going to succeed as a desktop OS, it's got to get beyond that.
Mike Loukides
Editor, O'Reilly