Jon Udell proves again why he's my favorite technology journalist with his piece Why Microsoft should open XAML where he writes
The
WPF/E runtime won’t implement all of XAML (XML Application Markup
Language), a .Net language tuned for declarative application layout.
But “the portion of XAML we’ve picked,” Gates told me, “will be
everywhere, absolutely everywhere, and it has to be.”
“Everywhere”
means the kind of ubiquity that the Flash player enjoys on Windows and
Mac desktops, and to a lesser extent on Unix and handheld devices. And
it sets up an arms race between Adobe and Microsoft, each giving away
razors (that is, players) in order to sell blades (development tools).
Here’s
a crazy idea: Open-source the WPF/E, endorse a Mono-based version, and
make XAML an open standard. Why? Because an Adobe/Microsoft arms race
ignores the real competition: Web 2.0, and the service infrastructure
that supports it.
The
HTML/JavaScript browser has been shown to be capable of tricks once
thought impossible. Meanwhile, though, we’re moving inexorably toward
so-called RIAs (rich Internet applications) that are defined, at least
in part, by such declarative XML languages as Adobe’s MXML, Microsoft’s
XAML, Mozilla’s XUL (XML User Interface Language), and a flock of other
variations on the theme.
Imagine
a world in which browsers are ubiquitous, yet balkanized by
incompatible versions of HTML. That’s just where RIA players and their
XML languages are taking us. Is there an alternative? Sure. Open XAML.
There’s a stake in the ground that future historians could not forget.
When building rich internet applications today, the primary choices are AJAX and Flash. The reason that these are the two primary choices versus other options like Java, ActiveX, XUL, etc is their ubiquity. And AJAX is typically preferred over Flash because it doesn't require expensive development tools and there is the perception that AJAX is less proprietary than Flash.
Any technology that aims to compete with Flash and AJAX, has to be cross platform (i.e. works in Firefox and Internet Explorer at the minimum) and ubiquitous. Ubiquity can be gained either by taking advantage of the existing technologies within the browsers or by ensuring that the process for getting the runtimes on user's machines is seamless for end users. I have no doubt that Microsoft can eventually get development platforms ubiquitous on Windows. Earlier this week, I was reading a number of blog posts from people who tried out Windows Live Writer and don't remember anyone complaining about needing to have the .NET Framework installed to run it. It took a few years but it seems the .NET Framework is now on a majority of PCs running Windows if those blog posts is any indication. However it's taken a couple of years for that to happen.
If WPF/E is meant to be used in the same situations that AJAX and Flash are used today then it needs to give developers better advantages than the incumbents. If it was ubiquitous and cross platform, that would still just get it in the door. Jon Udell's idea to make it an Open platform on the other hand may take it to the tipping point. At the end of the day, Microsoft should favor building the ecosystem of rich internet applications that are accessible from Windows PCs than competing with Adobe for dollars from selling development tools for rich internet applications. This seems to be a better strategy to me.
Disclaimer: The above post contains my own opinions and does not reflect the intentions, strategies, plans or thoughts of my employer