Technology for the view layer of a web application

I have been away from coding for about two years now and away from coding for a web application for more than five years! Things have changed so much on the web app side. Complete shifts away from traditional methodologies have taken place. Adoption of new paradigms in different aspects of programming have evolved and matured over the last few years.

The most important of all developments is the move towards a more desktop application-like user experience. Web applications traditionally were slower than desktop applications. Every action required a round trip to the server. The advent of the XML HTTP Request and the subsequent Ajax revolution, popularized arguably most by Google and its applications have really changed the way web apps are now looked at by users all over.

A large number of Javascript frameworks have been developed which make it easier to build such applications for the web. So, we see people adopting this trend more widely. Some concerns have been raised about the security issues that these technologies inherently come with.

I have looked up a number of them and also consulted with former colleagues on their take on this. Many of them have used a wide range of technologies and have interesting points of view on each of them. Currently, jQuery looks to be very popular and stable. SproutCore shows a lot of promise and Apple is promoting it.

Where does that leave things like Tapestry, WebObjects and JSF? They will have to reinvent themselves pretty soon, providing similar features and the ease of use that the new kids boast of today.

I am tempted to go with one of jQuery or SproutCore. Unless of course, I can quickly master Project Wonder's AJAX components and find that they offer the same usability for the end user as the JS frameworks do. I only wish (and wish real hard) that Project Wonder was better documented and easier to learn.