Google Maps: the future of web applications? Google Maps: the future of web applications?
Fri, Mar 25 2005

There have been some big events recently in the world of web development, changes that will ultimately change the fundamental way websites and computer software in general are designed and used.

The web was originally conceived as a series of "pages", with users able to move from one page to the next. Then along came the concept of "dynamic" pages that show different things depending on what the user wanted to do. For example, when you do a search using a search engine the results page is "dynamic" - it didn't even exist until you ran the search, and then the server created the page with your search results on it and sent it back to you.

That's also exactly how a website Content Management System (CMS) like SiteBuilder works.

But that's been about the limit of the state of the art up to this point. Web applications (or "webplications") have still been largely stuck with a "page view" model, which makes them very limited compared to a program running directly on your computer which can provide instant feedback to things you do.

Web application developers have dreamed of being able to create pages that are truly dynamic, and creating browser-based applications that feel and behave like a real program instead of read-click-wait, read-click-wait.

A couple of years ago IVT did a really cool project for a Canadian company, setting up an equipment monitoring system which allowed a "status" page in a web browser to update itself without reloading the entire page. The user could leave their browser open on the status page, and when an event occured the status page would immediately show the change. No more clicking "reload" just to see if something has changed!

That system was a half-step toward creating a web application that runs in your browser but feels like a real piece of software on your local computer. There have also been other half-steps coming from slightly different angles using different technologies but still nothing that really made the user feel that a web application was as responsive as a local program.

But now the Holy Grail of web application development is drawing closer, with several recent websites leading the way in creating an experience that comes close to that of running a program on your local computer. They're still very simple in terms of functionality, but now that developers everywhere have been alerted to this new way of doing things I expect we'll see very rapid advances in the coming months.

The simplest example is Google Suggest. At first it looks pretty much the same as the normal Google search page, nothing fancy - but if you start typing in a search term, it 'guesses' the search phrase you are typing and offers a number of options to autocomplete it.

Well, whoop-de-do. Not that exciting really, at least not on first inspection. But think about it: to do the word matching, it has to have words to match against, right? So where are they coming from? When you went to the search page, did it download an entire dictionary to your computer? Of course not. Although you can't see it, the actual word matching is taking place in a program running on a server way off in a Google data center somewhere half way around the world. In real time. While you're typing. It's not even happening on your computer, you're just seeing the output.

What this means is that the distinction between local programs and websites is being broken down. You could be using your browser to interact with a program that is running on a company server in another state, or located in a provider's data center anywhere in the world, and it can behave like it's a local program on your computer. No more read-click-wait, read-click-wait.

The second example is Google Maps. Google Maps is a more complex example, but it uses similar techniques to Google Suggest. It uses a number of interface "widgets" that traditionally have only been possible in local software, like the draggable slider on the left to zoom in and out. Try dragging the slider up and seeing what happens to the map. Note that this is happening *without* your browser loading a whole new page: it's just updating the display in front of you.

Then try one of the example searches on the right hand side, such as the "10 market st, san francisco" search. Once again, the map update based on the search request is happening directly inside the page you already have open.

Now for the knockout example: having found 10 Market Street, imagine you want to follow down Market Street where it disappears off the bottom left of the map. Just click on the map and drag it up and to the right! You can follow Market Street down to where it meets 17th Street or where-ever else you want to go. In fact, you could drag the map all the way across the US if you wanted to, seeing street-level detail all the way. So does this work by pre-loading a detailed map of the entire country when you first go to the page? Nope. As you move sideways across the map, the system figures out which areas you need to see and loads small map "tiles" from the Google server. Your computer only loads the tiles for the area you want to see, but you have the freedom to move anywhere you want to on the map without having to wait for another web page to load.

From a users point of view neither of these examples are Earth-shattering. They behave exactly the way software should behave. But that's the whole point: they're not software running on your local computer, they're web applications with the bulk of the software located on a remote server and your browser just doing some display processing. It's software, but you didn't need to install anything to use it. You just pointed your web browser at a page.

What makes this even more interesting is that it doesn't even use any new technology. It's done using a combination of relatively old technologies including XML, CSS and JavaScript, but put together in a very neat way that opens up a whole range of new possibilities. The building materials may not be new, but the building certainly is. And that means it's a technique that's accessible immediately, right now, to developers who know what they're doing.

The coming months are going to see many developers rushing to come to terms with this new way of doing things, and then we're going to see the walls between "web pages" and "local software" come tumbling down. It will become increasingly difficult to tell the two apart, and many companies will move to deploying software using this new technique rather than having to install local software on every single computer in the company and then keep them all updated and security patched. It's an IT manager's dream come true.

This will also accelerate a trend that I've been commenting on for a long time: traditional web developers will have to become software developers or they will die. In this new world of webplications it won't be enough to create websites that are just pretty pages. Web developers won't be able to get away with just doing a bit of work in Photoshop and writing some HTML. They'll have to re-invent themselves as software development businesses if they haven't done so already.

For end users, though, the result will be a whole new Internet. An Internet where your browser is a window into a world of software that you can run anywhere, anytime, from any computer with a browser and a net connection. Developers have just had the shackles of the page-view paradigm removed and it will be fascinating to see where their imaginations take us as a result.