X
Business

The Impact of Windows Presentation Foundation, Apollo, and Flex

WPF and Flash are each powerful technologies that will offer developers and designers a way to build the next generation of software. There are strengths and weaknesses for both, and the companies behind the two, Microsoft and Adobe, have very different visions for the future of the Rich Internet Application.
Written by Ryan Stewart, Contributor

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.

wpf_times.jpg

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.

flash_c64_emu_small.jpg

Commodore 64 Emulator in Flash (Darron Schall)

Flex 2 and the new Flash runtime brings a sophisticated development environment to Flash. Flash isn't just for advertising or games any more. The Flex Developer Derby entries on labs.adobe.com show the kinds of things that Flash is capable of now and how robust it is. You can build entire applications in Flash, and Apollo takes that a step further by combining Flash, PDF, and HTML in such a way that those technologies can take advantage of and interface directly with the desktop. Apollo will run on MacOS, Linux and devices, which gives it significant penetration and a way to deploy applications that makes the operating system you're using irrelevant. Feature wise I think it lags a bit behind WPF, but the cross platform is an extremely important consideration. It's also a big part of the future.

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.

apollo-player.jpg

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.

Editorial standards