update 04/27: Twist, points out that Microsoft is looking to port its presentation framework to Mac OS X and other platforms.
As dramatically unimpressed as I remain with the consumer-end of its upcoming operating system, Microsoft is doing a number of cool things for Windows software developers. Let’s take a brief look at the Windows Presentation Foundation, and how it could one day, for some twisted paradoxical reason, benefit the Mac and other computing platforms.
Vista will finally introduce the ability, at its core, for the operating system to offload most aspects of 2-D and 3-D rendering to the Graphics Card if available, and away from the CPU. Prior to this, Graphics cards in the Windows-world were only leveraged by specialized games and authoring software. On this front and many others, Microsoft is finally catching-up to what Apple did years ago with Quartz, then Quartz Extreme.
This new graphics subsystem in Windows will be a key component of the Windows Presentation Foundation, and cinematic user interfaces built in XAML. What’s XAML? An XML-based framework to define user interfaces. Overlay a video playing on a rotating 3-D sphere? Easy. Slap together a few XML tags in XAML, and voilà.
But forget about stringing a bunch of XML tags together. That’s still too geeky.
Microsoft built a User Interface Authoring Tool, called “Sparkle”. It basically generates XAML markup, that’s easily integrated into the programmer’s development environment. What might Sparkle strive to look and feel like to some? Think vaguely of a happy blend of authoring suites previously put forth by Macromedia or Adobe. A designer, with very little to no software programming experience, would in theory feel right at home in Sparkle. But instead of generating conceptual vector or bitmap user interfaces, for someone to painstakingly cut-up to bits for later integration in the software, what comes out of Sparkle is a ready-to-use software shell. The software engineer can basically start adding code to bring the user interface to “life”.
To me, the big story behind Vista isn’t Vista itself, but rather the software that developers will hopefully build on-top of Vista, if it ever makes its way onto the shelves.
Imagine that. Separating your presentation layer from your software logic. Sounds familiar … Oh right, there’s XUL, a cross-platform, open-source framework built and maintained by the Mozilla foundation, while XAML is proprietary, platform-specific.
Get this: Firefox, the second most-popular web browser, is written in XUL. Sparkle is written in XAML. While XUL has gained very little traction from the rest of the developer community, in the years that it’s been around, it remains insanely cool. The Mozilla foundation is able to release software simultaneously onto Linux, Mac OS X, Windows, and just about anything with a CPU, thanks to the abstraction layer that XUL provides.
As a result, a fascinating aspect of XAML, is that it’s getting Microsoft even closer to this ultimate abstraction layer of their User Interface Framework, that just might, beyond Mono and Cocoa#, dramatically simplify the process of “porting” a Vista application to Mac OS X, and other platforms.
If I were Apple, I would look into becoming intimately familiar with XAML, and find every possible way to embrace it within XCode. XAML to Cocoa? XAML to XUL? Nothing a few cleverly-crafted XSLT stylesheets couldn’t handle. What about Cocoa to XAML?
Apple recently hit us with the BootCamp bomb, essentially telling advanced Windows users who may have previously been weary of switching to Mac, “We embrace you. You don’t have to give-up Windows. Here’s a little something-something to make the prospect of a transition less scary.”
To take the BootCamp foray into the Windows world to the next level, how wild would it be for Apple to announce at WWDC2006 that Leopard would ship with a XAML-aware version XCode. Would this even be legally feasible?
“Developers, Developers, Developers: Build your Windows application from the comfort of Mac OS X. Test it in Vista. On the same machine.”