Buzzword Buzz
You may have noticed a new buzzword lately. Web2.0. Everyone is talking about it. Is this just technohype? Is it simply an umbrella for the innovative collaborative tools I've been talking about, like Writely and Kiko? Or is it something new, some brand spanking new technology being brought to your browser? Well, actually, no: -- it's not just hype, but it's equally true that there is really no earthshaking new technology involved. That's precisely what's so interesting about it. Web 2.0 refers to several new approaches to web application development that use tools your browser has been supporting all along, but use them in new ways. One key development - to me perhaps the most exciting - is an approach to web development called AJAX. It stands for - here you see I am a nerd after all - Asynchronous Javascript and XMLhttprequests. Here's the background for technical readers - but here's what it means to a user: Is it my turn yet? Up until now, web applications have required you to take turns. You read a page, then click next. Your turn is over until the browser gets the next page from the server. You fill out a form and click submit. Your turn is over until the server informs the browser your order is being processed. Server and browser do not keep up a running communication - they talk in bursts while you stop and wait for the hourglass. Its all because each communication with the server consists of a request for an entire new page to be transmitted - a page the browser then needs to render on your screen. This lack of intimacy between the server and browser give web applications their halting feeling, and have made them less suitable than desktop apps for complex business programming with high data entry requirements and complex business logic. This is just what Ajax means to change. To make a long story really short, an Ajax application uses JavaScript to get data from the server whenever it is needed, without requiring the browser to redraw the entire page. The script can redraw all or part of a page as needed, hide or reveal elements, and open new windows. Because it can redraw just relevant bits of the screen, rather than requesting a whole new page, an Ajax application can look and feel much more like a traditional program running right on your desktop. I mean this both in terms of speed, and richness of the user interface. Drag and drop capability, for example, so common in GUI desktop apps, is usually not available in a web app. But Ajax makes it easy to bring familiar desktop behaviors like this to the Browser. Are we there yet? There are still difficulties with this 2.0 world that make programming sophisticated web applications problematic. Testing and debugging is one of them. We are starting to see some automated testing tools for JavaScript and XML. This is a good thing, because the browser will not warn you about most JavaScript errors; it will just stop executing your code. And tt's difficult to "trace" a javascript app to see just what it is doing. Lastly, if the application is for public use, rather than an inhouse application, you need to test it in the last several versions of all the popular browsers. So testing and debugging is intense and time-consuming. But the tools will mature now that developers are starting to build with them. Just yesterday my coworker Curtis and I were identifying places where Ajax would improve our online applications. I'm not ready to throw out the desktop when it comes to mission-critical inhouse applications - but Ajax will definitely have an impact wherever we need to put something in the browser. A further look. If you'd like to see a bit more, take a look at this - its a link to an exciting Ajax development tool called BINDOWS that we've been evaluating here at Members Only Software. Click on the "Click for a Quick Demo" link on the Bindows home page to see just how much like a desktop app these programs can be. And here is a cute little app for creating your personal web startpage that shows off Ajax drag and drop. That Writely collaborative word processor I talked about a few days ago? That's Ajax as well. |