I had originally written a few days ago that Microsoft and Google are not competing. This is technically true, since the only place where the two companies have competing products is in the search market. Chris pointed out that while this is true, it isn’t the whole story, and he’s right. The real conflict will be in the “platform of the future”. Microsoft and Google have two very different visions for the platform of the future.
Google’s vision for the future–or at least, the public’s perception of Google’s vision for the future–is a “Web 2.0″ future, where applications are served as webpages. The quintessential example of this is Google Spreadsheet. Google Spreadsheet shows all the pros and cons that are typical of Web 2.0 applications. Documents are amazingly easy to share, accessible from anywhere, and platform independant. On the negative side, however, the user interface is less responsive, and the feature set is less rich, compared to a traditional spreadsheet application, like OpenOffice.org’s Calc or Microsoft Excel.
Microsoft’s vision for the future is slightly different. In Microsoft’s version of the platform of the future, a rich set of client-side functionality is provided by traditional client applications. However, a high level of accessibility and collaboration will be available through the use of Internet cloud services through interfaces such as SOAP (facilitated by Windows Communication Foundation of course).
The different views of the future can be fairly easily explained. Microsoft’s version of the future continues to rely on Windows, while Google’s vision has no requirements of the operating system. This is probably an oversimplification, but accurate nonetheless.
Having said this, l want to present my opinion of the platform of the future (at the risk of sounding like a Kool-Aid drinking fanboy). In a nutshell, Web 2.0 is a round peg in a square hole. Trying to write a rich interactive user experience in CSS and JavaScript is like calculating the value of pi with roman numerals. You can do it, but it’s neither elegant nor easy. On the converse side, Microsoft is rapidly moving toward more developer-friendly platforms (this point may be debatable, but it’s something I definately believe). In order for Web 2.0 to be successful in its current form, developer tools must be created that provide a more powerful development platform to work with. Something like GWT must be used in order for Web 2.0 to be an effective platform. Even then, however, there are limits to the expressiveness of CSS and Javascript, and it will be interesting to see if web apps every reach the same level of features that client side applications have today.
While writing this article, Avant Browser crashed and I was forced to recover my text by attaching a debugger. This demonstrates a necessity in web based applications… they must autosave! More about viewing the crash dump tommorow
-Tim