Sign In/My Account | View Cart  

advertisement

AddThis Social Bookmark Button

Weblog:   O'Reilly Editors Debate "Havoc Pennington rant at Sun's strange strategy"
Subject:   Havoc's definitely correct
Date:   2004-03-08 18:03:16
From:   elanthis
First off, it has less to do with the app being in Swing than the fact that there are two apps. We don't need two different apps. Nobody wants two different apps. Third party support technicians and plugin vendors don't want to deal with two apps. Etc. It's needless duplication of technology not only on the UI side (GTK vs Swing), but the extension API and entire user experience.


Second, 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. We don't even need to mention the lack of integration with platform specific technologies like the VFS layer, file formatting (extensions on Windows/Linux vs attributes on OS X) and so on.


If you want a *proper* cross platform app, the real solution is to take a solution like Abiword's. Abstract the GUI from the app, and then write platform specific versions for Windows, GNOME (Java-GNOME bindings), and Cocoa. You can even include a Swing front-end for those "other" platforms. This way, each front-end can look, act, and feel correct for the platform they're running on, versus copying OpenOffice's or Mozilla's mistakes where the app either only feels right on one platform (OpenOffice/Windows) or feels like an odd-ball on ll platforms (Mozilla).

Full Threads Oldest First

Showing messages 1 through 3 of 3.

  • Daniel H. Steinberg photo Updating Swing biases
    2004-03-09 08:59:18  Daniel H. Steinberg | O'Reilly AuthorO'Reilly Blogger [View]

    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.

    Daniel Steinberg, editor
    ONJava.com and java.net

    • Mike Loukides photo Updating Swing biases
      2004-03-10 07:38:05  Mike Loukides | O'Reilly AuthorO'Reilly Blogger [View]

      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.


      Mike Loukides
      Editor, O'Reilly

  • Havoc's definitely correct
    2004-03-09 02:14:40  khakipuce [View]

    Whilst I agree in part about the look and feel issues (although swing offers 3 different look and feels which are dynamically selectable to address some of the objections), I suspect this is part of a strategy to complete open office with a decent groupware type app.


    That said they may be better off doing a deal with IBM to open up Lotus Notes for this purpose.


Showing messages 1 through 3 of 3.