Web 2.0, you've heard about it and have been told that it will do everything from curing cancer to finding a loving home for every orphan worldwide. It's the latest and greatest thing that the Interweb allegedly has to offer, and if you're a geek, chances are you may have some interest in it. Flashy, responsive AJAX-driven user interfaces give the illusion that web pages are actually standalone applications that have a deep relationship with the wholesome goodness of online services such as Google's massively power, and apparently massively logged, search services. It's revolutionary, it's on the horizon and it will be a fundamental paradigm shift.
Unless of course you actually remember the dot com bubble burst. Color me cynical, but take the arguments for AJAX. What is AJAX, you might ask? It's a technique, not a product, but you'd never know that from the way that many of the tragically-too-hip-to-know-what-the-hell-they-are-talking-about are proclaiming its ascendancy over the mundane, but ironically far more secure, "Web 1.0" model of website development. You see arguments about why AJAX is going to take over from J2EE and kill it using the wildly inappropriate to David and Goliath. The only problem is, J2EE actually often ends up being the backbone of AJAX applications. I guess it's hard for David to see how precarious his position is when he's riding on the shoulders of Goliath.
Dynamic, dynamic, dynamic. Web 2.0 is incredibly dynamic, or is it? In Java with Swing and .NET with Windows Forms, one can create a rich user interface that is incredibly easy to maintain, but that simply cannot be said of this "radically new Web 2.0" thingy. Try creating an office suite using the LAMP platform and the AJAX methodology. Unless you know what you're doing, you will spend most of your time reinventing the wheel, at least once if not half a dozen times. See, here's where the reality comes in and brings the hype mercilessly to its knees. XHTML is still practically paleolithic when it comes to defining user interfaces. If Web 2.0 were so revolutionary, it would be possible to create a sophisticated user interface using something equivalent to Microsoft's XAML, JavaScript and a little bit of server-side magic.
But you can't. Get over it. There are very few web applications even pretending to be mainstream that are so well-designed that they come off as real applications, rather than as super-special web pages that do nifty things. WordPress 2.0 is delightful, especially given how sophisticated its new post creation system is. I absolutely love it and think that I've finally settled down on the blogging platform for me. However, most AJAX applications do nothing that "Web 1.0" applications didn't. Yes, it is an important step forward to be able to make asynchronous requests to the web server in order to be able to do dynamic updates and things like that, but come on people... that is an evolutionary update. A revolutionary update would be Microsoft and Mozilla working together with the W3C to create a new markup language that lets you describe a desktop quality user interface, with all of the ease and sophistication of Swing or Windows Forms and utilizing the Model-View-Controller paradigm. The only problem is, this would make website development the domain of software developers, not web designers.
What we are seeing now is not Web 2.0, but rather Web 1.1. The Web is starting to go through some real growing pains, and incidents like the recent attacks on LiveJournal prove that the state of web development cannot be considered to have undergone a whole revision, which is tantamount to an overhaul of the entire process. For enterprise applications, things are shifting to a real "2.0" thanks to frameworks like Spring, Hibernate and Ruby On Rails, but those are improvements are on the back end which appeals more to Computer Science nerds that the flashy digerati. Perhaps the worst part of all, is that "Web 2.0" illustrates the danger of not requiring web application designers to be bonafide software developers. Degreed or otherwise, would you really trust your web application's security to someone who knows only PHP and JavaScript and is incapable of telling you why J2EE or ASP.NET makes much more sense for many applications than the lightweight languages used in the LAMP stack?
I'm really not trying to be an elitist here, but there is no point in my mind in trying to get away from the awful dichotomy that is Web 2.0. Either it's a presentation system, or it's an application framework. Let the professional software developers build the real web applications and leave the other work that doesn't involve real programming to the designers. The problem is that Web 2.0 has hitherto been primarily the domain of people who care more about the "wow factor," than the people who care about real software development. In the end, if it's going to be the wave of the future for application development, it's going to need to be more rigorously developed and scrutinized, but that's the dull part and why it'll not happen until enough of the shoot-from-the-hip defenders of the flashy new "paradigm" are forced to admit that the more things change, the more they stay the same.
Don't get me wrong, I like AJAX and enjoyed working with it enough in college to make a point of teaching it to other students, using it in my projects and even giving a mini-lecture on how it works and how to use it in a web application. I also think that XHTML is a very good presentation framework, but the problem is that it is not really conducive to the kind of user interface development that one gets used to doing standalone software development. The more you learn about this topic, the more you will begin to lose respect for the tech columnists whose inability to get anything right in regard to software development issues is often stunning given the fact that their jobs center around reporting on the industry. So either ignore the hype or research it. Just don't be a fool and think that things have changed much since the last attempt to make web pages seem like quasi-desktop applications (dotcom era with Flash and Java Applets).