Cross Platform or Native Widgets?

May 13, 2003 9:58 PM

This post on Hyatt's blog, and the ensuing discussion pretty much sums up the problem trying to make a cross-platform application look native. A few quotes:

hyatt:

It's kind of amazing to think that, because of Internet Explorer's dominance, the very way widgets have to be designed in order to avoid bad page layout must necessarily match the way widgets are designed on Windows.

jwz

This argument is interminable, and we've had it since 1994, back when there were actually three platforms (rather than today when there's one platform, plus 1/10th of a platform, and oh, over here there's 1/50th of a platform too.) When someone decides to buy a Brand_X computer, part of their decision in buying it is how it works: people don't buy Windows boxes because they want Macs, nor do people buy Macs because they want Windows.

There's a lot to think about in this for Swing programmers, too. If your application has been laid out on a Windows box, chances are it's going to look wrong on OS X. At worst, you're going to find a lot of widgets fighting for space, and cropping text because the OS X widgets are just that much bigger and rounder than their Windows counterparts.

Even if the layout isn't breaking, you're still not going to look comfortable on the platform because the Apple Human Interface Guidelines are very strict about how applications are laid out. Simple things like that make an application look jarring, and feel uncomfortable to use. Simple things like that are one of the reasons people will always go for a native application over a cross-platform one, or even a ported one (since ports inherit the assumptions of their parent platform).

It's not a problem on Linux, of course, because X users are used to every application looking different. :)

1 TrackBacks

Listed below are links to blogs that reference this entry: Cross Platform or Native Widgets?.

TrackBack URL for this entry: http://fishbowl.pastiche.org/mt-tb.cgi/234

I’ve been thinking about this post on the Fishbowl for a few days now. Just ticking over in the back of my mind. The first couple of times I fooled about with HTML I made the common newbie mistake of... Read More

2 Comments

This is so unbelievably true it's painful.

While a cross-platform application will not normally meet the UI guidelines of all platforms upon which it can run, it is totally possible (especially in Swing) to make the application at least look the same and work the same. If you are using relative layout (which is hard to avoid in swing) and if the LnFs on the various platforms are implemented properly (and Metal, at the very least, is), then things won't get cut of. Specifically to OS X, Every Java app I have run on OS X, using the native LnF, looks fine. Nothing is weird or cut off. This means that the apps were written with cross-platform in mind and that the Apple OS X LnF was implemented properly.

BUT, the REAL advantage to the cross-platform widgets is not so much to run on Windows and Linux and OS X, but to run on all 10 versions of Windows. Keeping a native windows app working properly on Win95, 95A, 98, 98SE, NT3.5, NT4, 2000 , ME and XP can be very challenging. Given that most IT organizations have some number of all these OSes deployed, having an app the works the same on all those versions of windows is very advantageous: You spend less time dealing with windows inconsistencies and you don't need some crazy 10-machine testing lab. Furthermore, you are insulated from errors introduced by applying (or not applying) patches.

Basically, a cross-platform gui toolkit is useful for deploying internal line of business applications that are not appropriate as web applications. Things that today are deployed using PowerBuilder, VT100 or worse.

For a commercial applications (e.g. word processor, spreadsheet), I would agree that a native application (or one written specific to the OS, including widgets and UI guidelines) is more appropriate, and the cross-platform advantage is less of an advantage. But the real money to be made in s/w development is not commercial software.

Comments are no longer being accepted for this blog entry. If you really want to make your voice heard, you can always email me.

Previously: L Ron Jobs and the Church of Macintosh

Next: JBoss vs JDJ Celebrity Deathmatch