Well, I agree that Ajax + DHTML + Javascript can be powerful, and deliver a great user-experience, but I must also say that these technologies are not easy to implement:
- html + Javascript does not work the same on different browsers (at all !!). We were lucky to have only to support Firefox, but supporting also IE6 + IE7 can be a nightmare. When you want to do dynamic html, never, NEVER expect behaviors to work as you expected at first (you will end with a long, long litany of if-then-else depending on the browser).
- there is no simple ways to add simple widgets that work out of the box. Even if you want to add such basic things as scrolling, sliders, etc.. you need to use third parties Javascript libraries. There are not so many free ones out on the web, they are not so easy to implement, and when they are not working as expected, it is not so simple to debug (even with wonderful add-ons like Firebug).
- Javascript is a limited language, and its behavior depends on the browser. For example, hastables in Javascript are extremely limited, and their behavior depends on the browser too.
I really don't understand why people always say that Web 2.0 is so much the future that it will kill fat clients. OK, you can achieve great UI results, but saying that it is simple to do is a lie, and one can not say that browsers are thin apps. The only thing that is simple, compared with languages like Java for example, is the fact that you never have to compile anything.
OK, you will say: try Apollo, or Silverlight, this is the next move in internet programming. Humm, I will try these some days, but I would say :
- all these frameworks are still Beta, so I think it can be better for the moment to experiment, but wait a little for something more stable
- these frameworks are relying on some proprietary technologies (Apollo relies Flash, a proprietary technology from Adobe, and Silverlight is Microsoft-proprietary
- there is already Java (+ Web Start), and XUL, why not using what is already working for some time now ?