Dion Hinchcliffe, my fellow ZDNet blogger, gave a rundown on what he called the "RIA wars". It is great to see that people are taking notice of Rich Internet Applications and the technologies that power them. Dion's piece is a good overview of what's out there and the pros and cons of each. What caught my interest the most, however, was the comments about Dion's piece on Slashdot. I consider Slashdot readers some of the smartest techies out there. They're also very passionate and very opinionated. What struck me was that a lot of the comments were supportive of the RIA ideas. Of course there are people who hate Flash and Microsoft, but the majority of them genuinely believe in a better way for the web. They may not thing the current RIA implementations are perfect, but they acknowledge the benefits.
Within this environment, I wanted to talk a little bit about platforms and services. I'd like to think of it as a corollary to Dion's post. The very first comment on Slashdot touches on this, but I don't know if he realizes it. RunFatBoy says:
While Open Lazlo and other open source client solutions are exciting, I think people generally want a fully integrated, front to backend solution for developing these Rich applications. Sure they provide data binding, but solutions such as Rails that provide server-side functionality to directly manipulate the client side give me a more comfortable feeling.
I think he's right. With some trepidation, I wrote about the Platform Wars and how Microsoft and Adobe were the only real players left. Open Laszlo is a fun wildcard because it provides the ability to run on a variety of platforms, but it doesn't possess the same "stack" solution that Microsoft and Adobe provide. I think the Stack is very important, but I don't agree that the backend of the stack is important. I think RIAs are enabling a much different stack.
For a long time, Microsoft controlled the desktop. Windows has a gargantuan market share and the majority of desktop applications are written in to run on Windows. When the web came along, it opened things up some. We could run web applications, which contained some of the functionality of regular desktop applications, but were nowhere near as robust. And it showed. Gmail is great, but if you're a hardcore user of Outlook, you're not going to want to switch. With Rich Internet Applications, we can bridge this gap, but with current technologies, we can't take it all the way. That is what these platform wars are all about - providing Rich Internet Application solutions that bring the web and the desktop together.
This is the world of Rich Internet Applications - a desktop experience on the web and a web experience on the desktopIf you are a big software company, you can no longer afford to focus on either the web or the desktop. Pure web companies like 37 Signals and, to some extent Google, are great case studies, but users still like their desktop applications. In order to succeed, you have to gain mass adoption with technology to merge the web and the desktop with little extra development time. Microsoft and Adobe are coming at this from opposite directions, but they are on a collision course.
On Microsoft's side, you have Windows Presentation Foundation (WPF), perfect for building webified desktop applications. But Microsoft cannot forsake the web or even the plethora of other devices and operating systems. As a result, they have XBAP which runs WPF applications inside a browser and Windows Presentation Foundation / Everywhere (WPF/E), which enables limited WPF functionality on devices, OSX and possibly even Linux. From desktop to web, you have the full suite. You can implement a Rich Internet Application solution easily and broadly.
Adobe started from the web, building on Macromedia's strength - Flash. They gave us Flex, a powerful way for building Flash applications for the web. But their weakness was the desktop, and to shore up that front they have Apollo, which will give developers the ability to deploy Flash applications on the desktop with all the trimmings required including File I/O and local storage. Flash is inherently cross-platform, but for devices Adobe offers Flash Lite which enables some Flash functionality for the growing mobile market.
The full stack is why these companies have such a head start. But it is no longer about a stack that handles presentation and front end because our applications are straddling the world of the web and the world of the desktop. Both will be around for some time, and so the company that provides developers with the best functionality for both will see massive adoption. This is the world of Rich Internet Applications - a desktop experience on the web and a web experience on the desktop.