I'd love to have programming-language agnostic scripting on a broser- PNaCl looks quite interesting. However, application development on the browser can only advance as quickly as IE features advance. IE still has huge marketshare, so if your website (web-app to be more precise) doesn't run on IE, you are excluding a huge customer base. This is all changing quickly with tablets and mobiles (which mostly run webkit) but IE is still very big. This will put pressure on Microsoft, and hopefully these features will get incorporated into IE sooner or later.
In my opinion the whole application on a browser thing happened because MS has (had?) a monopoly on desktop. So if you wanted to develop something cross-platform that has a UI, you had following options:
* Do it in a cross platform language that has UI programming. The only one I know is Java. 10 years ago, computers were much slower, and Java on desktop was quite worse than it is right now, so this would result in sub-par applications.
* Do it in C/C++ and use a cross-platform tookit. The only ones worth talking about are wxWidgets and Qt, and again, 10 years ago they weren't mature. On top of that you need to deal with tons of "backend" programming hassles, as windows is not really posix compatible. Again, cross-plaform toolkits like Qt or wxWidgets help here, but only some.
* Use some kind of thin client technology and do all the heavy lifting on the server. This basically evolved into a web server + a browser as a thin client. And until AJAX, your applications could not offer much interactivity.
All thigs considered, for many things browser-as-a-thin-client model makes a lot of sense. You always get the latest version immediately, you don't need to install anything (installing/removing/updating software is a huge hassle on windows. I'm appalled windows still doesn't have any package management and repositories). You get decent security- you can trust a web page will not screw up your computer (well, except some exploits in the browswer, but that's nothing compared to installing and running a native app from untrusted source).
Looking back I always think if this could have been done better. HTML+JS is quite nasty from an application development point of view. First of all, JS works differently on different browsers, and these differences are hardly documented. Things like GWT or jQuery help, but the problem is still there. Again, Microsoft and IE screw things up badly for everyone time and time again. Another two things- running inside a browser you don't have propper networking support and access to local storage. Both are required for complex interactive applications. HTML5 is an attempt to improve both, but it remains to be seen how successful it is. HTML/CSS layout is hard. There are still few to none WYSIWYG tools to drag and drop UI elements and construct a web-app in this way. And web-apps have a different look & feel than native apps- you still need to think in terms of URLs, "back" buttons, tabs, browser menus, etc. And not all hotkeys work either.
In general, I think a browser using HTML/JS/HTTP is a bad to mediocre thin client for applications. The only reason its so widely used is because it comes preinstalled on all new computers/tablets/mobiles shipped. If Microsoft wasn't a monopoly, it would have been possible to ship some other better thin-client with all the machines sold, and we would not have to deal with all this mess. I would probably prefer to have a browser just for reading PAGES, and a dedicated thin client for running remote apps. Hopefully things will get better with HTML5, and Microsoft has less influence on internet standards these days...
Sorry for the long rant,
--Coder