I personally don't like the trend towards Ajax in web applications. HTML/Javascript/CSS was built and designed around defining a common way of expressing data to a user, not designed around making performant or glossy apps to the user.
Many of these early design decisions mean that Ajax will never be able to reproduce many of the fundamental changes in the way computing is done - losing out on performance, glossyness, static typing, compilation or optimisations that help real apps (and even
browser plugins such as flash and silverlight) from being the slow buggy mess that Ajax is.
Furthermore, because of the different rendering "quirks" between the major browsers, not only do you have to code around the bugs/features of IE/Firefox/Opera etc, but also you have to take into account their current "Ajax state". Even worse, because of Ajax's
reliance on javascript to run, tiny browsers such as those used by web-crawlers, consoles, PDAs etc simply won't render the page to get the information out, which leaves the web-experience significantly diminished for those users, and can cripple your site's
accessibility.
Personally I feel that by the time your web programming has moved sufficiently far from the standard page-based style, you should consider migrating either to a full client-app or to a browser-plugin-based solution in flash or silverlight. Not only does this
increase perfomance and grant you tools that are fit-for-purpose, but you also have the advantage of browser render-style independance.
This site is unique in it's ability to get the message out to the public. Use of Ajax where it's not needed slows things down, provides Heisenbugs that are hard to reproduce and make life more difficult for your viewing public. For small things, perhaps Ajax
is a nice-addon, say for a dynamically updating shopping cart while adding items on Amazon or checking a username isn't in use on a register-page, but NOT for refreshing all of the information on a page like Channel9 does.
If something can be done elegantly or near-optimally using a HTTP get/post scenario, then simply don't use Ajax. You shouldn't use something because it's there, you should use it because it helps solve a problem, and I think Channel9 got that the wrong way
round when designing v4 - they said "Ajax is a 2.0 technology therefore v4 should have it", rather than saying "this is what Channel9 needs - what technologies best provide that". It's a pity, because they ought to know better.
Thread Closed
This thread is kinda stale and has been closed but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.