I’m a web developer, working with PHP as my primary server-side language. Coming from a web development background, I can tell you it IS possible to make pretty, working code that performs many functions of a desktop app–especially with AJAX.
For instance, take a look at http://www.thephppro.com --look at some of his product demos and their source code. I work for this guy and have used his AJAX system before, and let me tell you it works like a dream. Two simple function calls on a PHP page will produce all necessary XML formatting, return data to the page, and overwrite any necessary element in the page. One of two different function calls can be used to request this data.
Using this technique I created–with relatively minimal effort, good OOP standards, and clean, efficient code–an application that can update large or segments of a page with information from a server-side database as necessary, modify the database and return results based on the modification in less than 100ms (depending on the client’s connection speed).
Again, take as an example Google’s Docs and Spreadsheets web application. Though I can’t speak for its code, having never seen it, their interface and abilities are nothing short of fantastic for a web app. Sure, it’s different than a desktop application–I won’t say worse, for though it does lack a few features such as default font selection, it has a whole range of features, many of which are inherent to web apps–such as being able to access your saved documents from any computer, anywhere in the world. Google Docs and Spreadsheets goes so far as to offer you the ability to save in formats including HTML, Word/Excel’s .doc/.xls, and several other formats not supported even by Office.
I won’t continue listing examples, but there are many, many of them out there–it’s mostly a matter of A. finding them, and B. finding people capable of making them.