Category Archives: javascript

Web 2.0 Reality and Hype

I have a huge amount of respect for Bill Thompson, but his recent article in the Register Developer takes an overly harsh view of web 2.0. Admittedly, the term is now associated with an amount of hype not seen since the last tech bubble of the dot com era; however, web 2.0 ideas and technologies also have strengths: an architecture of participation facilitating user generated content, an increase in citizen journalism, improved user interfaces, and more. Bill Thompson seems to be willing to forgo these benefits and dismiss the technologies that make them possible as pure buzz and hype with no substance.

“Now we must decide whether to put our faith in Ajaxified snakeoil or to look beyond the interface to distributed systems, scalable solutions and a network architecture that will support the needs and aspirations of the next five billion users.

Over it all stretches the ‘Web 2.0’ banner, a magical incantation that will bring attention, funding and respect to any programmer able to weave a little Ajax into their interface. It seems that it only takes a browser that can interpret JavaScript and a server that will let a page call for packaged data through XMLHttpRequest and we can have all the benefits of distributed systems without the need to write too much code or rethink the way that the different components of a service communicate with each other.

If Web 2.0 is the answer then we are clearly asking the wrong question, and we must not be fooled by the cool sites and apparently open APIs. Most of the effort is – literally – window dressing, designed to attract venture capitalists to poorly-considered startups and get hold of enough first-round funding to build either a respectable user base or enough barely runnable alpha code to provide Google or Yahoo! with yet another tasty snack. We need to take a wider view of what is going on.

Web 2.0 marks the dictatorship of the presentation layer, a triumph of appearance over architecture that any good computer scientist should immediately dismiss as unsustainable.” (Bill Thompson, Reg Developer)

A good architecture is always important, but we can also have a great user interface and user experience along with it. Shelley Powers does a great job of putting this in perspective:

“I’m not sure who is touting Ajax as a replacement for distributed systems. If that were so, I wouldn’t be writing a book on the Ajaxian technologies. Ajax is nothing more than a way to create a user interface that’s simpler, quicker, and easier to work with then more traditional web pages. It’s handy, its helpful, but it’s also limited and most who work with it understand this is so. Unless Mr. Thompson believes that user interfaces aren’t needed in his distributed utopian environment, I don’t see the technologies going away. Nor do I see them interfering with distributed development.

Even his dismissal of JavaScript and XML makes little sense. According to Thompson, we cannot rely on Javascript and XML since they do not offer the stability, scalability or effective resource discovery that we need. Need for what? XML is a standardized markup, a syntax, a way of organizing data so that multiple application can access the data without having to come to some kind of agreement as to format. It’s use in syndication, for instance, has led to an explosion of communication; a version of which forms the basis of this page–in what way does this not scale, lead to resource discovery, or demonstrate instable behavior?

As for JavaScript, it’s almost as old as Java, and is considered the most commonly used programming language in use today. It is not a replacement for Java, nor is Java a replacement for it. If I wouldn’t think of using JavaScript to build a distributed system, neither would I consider using Java and EJB to validate my form data, or provide for live commenting. Apples and oranges.” (Shelley Powers on Mad Techie Woman)

No single technology (or even a group of technologies, like AJAX) will ever be the “perfect” solution to every problem. We need to keep this in perspective and focus on using the right technology for each job. Dismissing whole categories of technologies as hype without acknowledging that they have legitimate uses is not a productive discussion. It is black and white argument in a very gray world.