A few years ago, when I saw the first glimpses of the .NET Framework during a visit to Redmond, I remember thinking “What a waste of time Windows Forms is… ASP.net is clearly the programming model of the future. Why didn't Microsoft make a client side version of ASP.net?”.
I believe there were two reasons why Microsoft didn't choose this route:
- The world wasn't ready for it… Releasing something radically difficult could alienate the majority of VB6 developers, giving competitors a chance to take Microsoft's lunch and run with it.
- HTML just wasn't clean enough to build an easy to use programming model that could replace VB6. Previous attempts (like Web Classes in VB6) had failed miserably.
Now (or at least in a few years) we (will) have XAML… think of it as HTML for Windows. It's pure XML, and it's built with applications – rather than content – in mind. Like C#, Microsoft will control its future while still making it an open standard. XAML is Microsoft's attempt to control the future of the web.
Will Microsoft succeed? It depends on how innovative Microsoft's competitors are. Right now, the only company that has a chance to challenge XAML is Macromedia. They have the technology, but they don't have the muscle. If a company like IBM would acquire Macromedia, Microsoft could be forced into the same corner Apple is in today: proprietary, isolated innovation. Because XAML is longhorn-only, having a competing technology that supports older versions of Windows, as well as other platforms such as Mac and Linux, could proove to be an enormous competitive advantage.
What's really exciting about this is that ultimately the most innovating company that addresses real customer needs will win. That's very good for consumers, and great for the industry.