I love it when people explain complex topics in simple terms. Not because I'm a simpleton but because it makes the knowledge more accessible to the wider audience who really ought to know more about this stuff.
With the "Rich vs Reach" debate still raging between desktop and web developers (and firms with a vested interest in either. i.e. Microsoft and Google), the Google Chrome team put together this nice little booklet to convey information about web-delivered applications. Sure, they have a very strong preference for web apps but it is a fairly impartial summary.
Put simply web apps are moving forward in leaps and bounds because of many great innovations:
- The slowest parts of web page rendering: image downloads and DNS resolution, are being addressed by new image compression techniques, like WebP, and browser features like DNS pre-fetching;
- The new HTML5 standard includes many new features like the canvas tag, the video tag, and web sockets that make for a much richer in-browser user experience; and
- New techniques help minimize the latency associated with server round-trips that typified web apps for many years. Currently, developers resort to Ajax and Comet techniques to hide or minimize the latency but Comet is hard to get right across all browsers. The HTML 5 WebSocket represents a standardized way to address the problem that has been targeted by Comet and Ajax in that it defines a single-socket full-duplex/bi-directional connection for pushing/pulling information between the browser and server. Thus, it avoids the connection and portability issues of Comet and provides a more efficient solution than Ajax polling.
The next 5 years is going to see some really cool web applications that are installation-free, have "desktop-like" user experience, and are backed by on-demand super computers. i.e the cloud. I can't wait to see where it goes from here!