Thursday, September 23, 2004

GeekStuff: A Case for Mac. Mozilla.

Jeff Fansler and I started a fun geek-out session over at his blog. This particular entry mentioned his inability to do certain things on a Mac, which interested me in learning more about what those things were.

I've learned that among other products, Jeff develops Windows software in .NET. It would therefore make no sense for him to switch to a Mac if he couldn't more comfortably perform his work.

I find it frustrating to restrict ourselves to a given platform when developing desktop software. The Mozilla/XUL framework is giving me good hopes. I tippy-toed into it 2 years ago, while building a sample "xFly" application, but got quickly frustrated by how hard it was to run a standalone Mozilla app on OS X. I hear things have greatly improved. I'm feeling an itch for another late-nights project. FireFox (top-right corner of this page) was built in Mozilla/XUL, and is rapidly becoming one of the most popular web browsers out there.

Java also offers a compelling alternative for cross-platform applications. Take a look at JEdit. My problem with Desktop Java applications with a Graphical User Interface, is that they don't have the ability to inherit some of the graphical components and interfaces offered by the operating system. They've however come a long way from the early days of the Swing API.

The Mozilla/XUL framework, on the other hand, runs as a "meta-application" native to the operating system, that inherits and surfaces all of its typical application controls.

The best way I can rationalize all this is that Java was designed to offer a very low-level cross-platform run-time environment. Mozilla/XUL was designed with user interface in mind.

1 comment:

Jeff Fansler said...

One move that I am interested in making is working with GTK# on Linux to develop a forms based app. I was re-listening to the DotNetRocks episode with Miguel De Icaza and it got me excited again to work with Linux. I'm going to repave my laptop tomorrow to dual-boot (I tried Virtual PC and it sucks for this kind of stuff). If a Mac ever falls into my lap, I'd also be interested in playing with Coco.

It seems that this would be a pretty compelling story. If I could write all my app logic UI independent (everyone does that right? :) ) and then write a UI with WinForms, GTK#, and Coco I've just increased the audience for my app.

I don't typically write shrink-wrap stuff software, but it would be a fun experiment to try. Now I just need to find a really cheap Mac that will run OSX