I believe that we should start seriously thinking how we can standardize new, enhansed and built from the ground up technologies like language extentions for producing web applications. The current set of technologies is beginning to show its age. HTML is built for presenting data only, XML lacks common schema definitions, ECMAScript is not as powerful as we would have desired. Their blending which is AJAX is convoluted and hard to program in. A new technology, perhaps based on XUL as already mentioned or on XAML should be built and standardized. And standardized it should be now that is early and that the web is not full of web applications. Now it should be agreed upon and standardized in order to allow the web to move to the next level of rich web applications that have the usability of desktop interfaces. This is not because desktop computing should be replaced by apps running in the browser but because let's face it, the web will be used in any case. The web will be used and is being used whatever users will say. As time goes on we see major vendors, like Oracle forms, moving their apps into the browser and away from the desktop to the users' annoyance. "So what" vendors say, if the majority of users are not power-users anyway and if they do not mind the accessibility and reduced productivity issues then so what. Now is the time to move forward, not with a Microsoft only solution like XAML and .NET-based forms, but with a universal solution. If better web experiences are not provided and as things stand they will not, then unfortunately programmer will use the existing imfrastructure regardless how users feel. How many companies have internal websites for tracking tasks, orders, forum discussion, etc? How many use desktop software to do the same? Certainly small companies have web sites and their users have to deal with the hasle. Certainly many more users enjoy their web e-mail and do not use the desktop experiences. If isn't break why fix it, they say.
And truely, the web offers some advantages like the ability to use it everywhere and on every device. It reminds me of the slogan used for .NET. Desktop applications should be made as easy to code as HTML. How many computer science students know and write web pages? How many use web technologies like HTML, ECMAScript, PHP, ASP, etc? On the other hand, how many know and write WIN32 apps? The difference is overwelming. And not only students but also professors. People want a lightweight way of writing simple apps that are portable from computer to computer and truely "click once". Let's hope that the promised .NET and XAML will enable this options and the Win32 programming will be embrased and learned by as many as the web technologies.
On the other hand, the web is only easily programmed for simple apps. Try to do anything harder and things begin to be really hard. The next version of Windows Live Mail takes ages to produce by a group of talented programmers, etc, etc. Why should n't we have true desktop-like functionality in our web apps? Why couldn't we have menus, forms, keyboard navigation like in Windows and better user controls that closely resemble desktop ones? Even with ASP.NET where the programming style is much cleaner and more closely resembles the programming of a desktop app, even their code is translated into old HTML. So, what is ASP.NET, a translation engine built to make programming the web as it should have been? Trying to enhanse an already inadequate platform?
A new web platform is required and Microsoft is the company that can take the initiative. Not by adding its own proprietory features without common industry agreement. Not by producing a totally revolutionary and thus incompatible platform. Revolutionary it should be. But on the contrary, more colaboration between browser vendors is required. How many new web technologies that run inside the browser have we seen from Microsoft in recent years? We have the birth of DHTML in the 90s. But recently? Nothing? Microsoft and IE team should learn how to build bridges with competitors. Microsoft in general should make like security, interoperability a top priority? We as users need choice and interoperatibility is a prerequicit of that.
Bottom line: why should the two technologies, web and desktop computing, HTML and XAML, ECMAScript and C++/C# be so much different in their programming style. Admitedly they could and should be different in functionality or else the browser would be our operating system. However, why should they differ so much in how you program them. I think Microsoft should and could move them closer and do it in a standards'based way.