I had a good phone call yesterday with Michael Wallent, the General Manager of the WinFX team at Microsoft. I came away from the call with a lot more information about Windows Presentation Foundation and some deeper understanding of how Rich Internet Applications are going to evolve. The one thing to keep in mind during this conversation is that these technologies are still being worked on and the final products are still unknowns. With WPF out sometime next year, Flex 2 in June, and Apollo also sometime next year, talking about these as solutions may seem a bit premature. It's a lot like trying to pick the final score of the NCAA Champion Basketball game for the bracket tie breaker: It's fun to predict, and you can make some educated guesses, but if you get it right it was more luck than skill. With that, let's dive in.
New York Times Reader in WPF
After getting a chance to talk with Michael and see some of the Windows Presentation Foundation examples out there, it's clear that if they can deliver on their goals, WPF is going to be a huge draw for developers. Because of the hardware acceleration built in, the 3D interfaces, and the security model they've put together, people are going to create revolutionary applications. WPF is going to empower usability experts and designers with a huge voice in application development. I've drilled it over and over again, but the sophisticated user interfaces that RIAs are going to deliver will be an evolutionary step in software. WPF is heavily focused on giving designers and developers the tools to build this software evolution.
The drawback to this kind of power is that it won't be cross-platform. WPF/E is not going to be WPF for other platforms. It will certainly provide some good functionality: allowing easy cross-platform streaming of Windows Media files and an interface tied closely with WPF, but it will lack the more impressive features of WPF. While you'll be able to build very intense applications with WPF, WPF/E won't give you a way to deploy those applications anywhere. Adobe's play in this is Flex 2 and Apollo.
Commodore 64 Emulator in Flash (Darron Schall)
So where does this leave us? If you've been following me, you know that I'm a huge proponent of applications that run in a level above the OS and independently of the browser. The internet is cross platform and there is no reason why software shouldn't be. However, Microsoft still has a 90% market share in the desktop market, which is a big number. While WPF will require a download for Windows XP users, it's embedded in Vista and will have a big slice of the market for developers looking at ways to build their applications. The caveat is that what makes RIAs so compelling is the ability to deploy on devices as well as regular PCs. Combine that with the fact that Linux share is rising in Asia and Apple has released Boot Camp as a carrot tempting users to try Mac OS, and in years to come cross-platform will become more important for developers.
WPF and The North Face
While I was disappointed to hear that Microsoft will not be truly supporting cross platform RIAs, after talking to Michael, I understand their reasoning. They have the ability to tie into the strengths of Vista and create a better user experience. How will this affect developers? In two big ways.
First, RIAs that are created for the enterprise will be built in WPF. WPF will allow "streaming" of applications from a central server (or a cluster of servers), which is a big draw for large companies. Combine that with a very robust security model and WPF will give enterprise level developers immense control and high scalability. I can see a lot of data intensive companies using the UI features of WPF to build unique and complex ways to manipulate that data.
On the other side of the coin, the smaller developers, and developers who want as broad a user base as possible, will flock to technologies like Flex 2 and Apollo. The Flash Platform gives developers the canvas to create RIAs that are high on features and high on usability, but with the significant boost of operating system freedom. When Apollo comes to fruition, the idea of building powerful desktop applications with Flash is very reasonable. There will no doubt be performance differences between WPF and Apollo, with WPF edging out Apollo, but if you want your desktop application to run on Linux as well as Windows, Apollo looks enticing.
MP3 Player in Apollo
We are seeing the web deliver great applications. The technologies on the horizon will take that to the next level. A renewed focus on user interface, the ability to store and manipulate data offline, and the convergence with multimedia will be marquee parts of next generation software. Designers and developers are going to connect in ways that will make software fun. The internet makes it easy to build and deploy these applications. In the long term, Microsoft's strategy has to be cross-platform support. The corporate world is a good revenue stream, but it's the smaller, more nimble development shops that drive innovation. Eventually, innovation is going to catch up to what Microsoft can provide. RIAs will make operating systems an afterthought, and eventually the corporate world will follow suit. In the end, markets adopt what works best, and cross-platform will be it.