The Impact of Windows Presentation Foundation, Apollo, and Flex

The Impact of Windows Presentation Foundation, Apollo, and Flex

Summary: 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.

SHARE:

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_north_face.gif
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.

Topic: Software Development

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

4 comments
Log in or register to join the discussion
  • In yer dreams, people have cried cross platform

    for decades and it hasn't happened yet and I don't see it happening *someday*.

    Hmmm, I can develop for 90% of the market. As a developer, that's more than good enough for me.
    No_Ax_to_Grind
    • The Mobile Space

      I think that the reason this time is different is because mobile devices are becoming a very important market. MSFT has 90% desktop share, but their share of the device OS is limited at best. In order to have a "true" universal desktop, devices have to play a big part. I think that's going to draw developers.
      ryanstewart
    • 100% is better

      Yep. And I'll go and buy software from the people developing for
      my 3.5% marketshare platform, all of whom are also doing quite
      well, because they have far less competition!

      Q. If you had to design a website for Amazon, would you just do
      it for IE because that would reach 90% of customers, or go the
      extra mile for that other 10%. And how many $million do you
      think that extra 10% represents for Amazon.

      (Especially if that 10% may contain a higher percentage of high-
      income consumers and graduates).
      JulesLt
  • I don't think having two WPF standards will be that big a deal

    [url=http://channel9.msdn.com/ShowPost.aspx?PostID=198167]Here[/url] is a pretty good video describing some of the things MS will be working on in WPF/E. [url=http://www.on10.net/Blogs/TheShow/3392/]Here[/url] is a pretty nice video giving you an idea of what the New York Times reader will look like on a range of devices.

    I personally don?t believe it is going be that big a deal for developers to write applications against both WPF and WPF/E. It will at least be very similar to developers having to tweak their web applications for different browsers.

    Now what would be nice is if a user with Vista goes to a site, one version of an RIA gets streamed to his computer; another user with say a Mac or Win 2000 goes to the site, and a different version of the RIA gets streamed to his computer; and still another user with a smartphone goes to the same site, and a third version of the RIA gets streamed to his device. This would allow a site to maintain from 1 to 3 (or possibly more) versions of an RIA, and provide a range of experiences for its users. This may sound like a lot of work, but remember, a site can at the minimum develop a single WPF/E RIA in a fraction of the time it takes to develop a web site with equivalent functionality. Also, it should be easier to update data in an RIA than data in a web site - reducing management costs. Therefore it is very conceivable that certain sites will stream out different versions of an RIA ? depending on the client computer / device that goes to the site.

    Being able to stream out RIAs is very important I believe, because a person may like to be able to use an RIA from a site, but not have it persist on his computer; but may be interested in having RIAs from several news or magazine sites installed on his PC or device, so that he can interact with them and their content offline.
    P. Douglas