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.