text post 1/5/2011

Web Applications: The Next Generation

I tweeted recently that I was really enjoying chrome’s new web apps, and received a reply from a fine gentleman I know, saying “web apps? oh you mean bookmarked websites?” and this got me thinking.

To a certain extent, this gentleman had a point. Everything that is a ‘web app’ is in fact a website. And yes, it can be bookmarked. So you could say that anything that anyone calls a ‘web app’ is really nothing more than just a website.

But what this view fails to recognize is the evolution that the internet has gone through over the past few years. When I was just a young’un, exploring the internet through AOL’s dial up service on windows 95, a website was really just a website. You go there, you read some information, then maybe you follow a link to another website. In fact, this was the concept upon which the internet was invented. “http” stands for hypertext transfer protocol. And when we translate this out of nerd and into english, it comes out to something roughly equivalent to ‘a system in which one can make pages that link to one another’.

But over the years, websites have undergone dramatic changes. They are no longer static pages that are used to display information and link to each other. They are now dynamic, backed by servers, hosted externally, storing and managing relevant information and scripted using a variety of languages that communicate between cloud server and the page that you are looking at. So yes, twitter is just a webpage. Facebook is just a webpage. Youtube is just a web page. But are they really ‘just webpages’ because you can bookmark them? Absolutely not - they are something more. They are applications. They have a very specific function. They store and manage information, and make connections between users. Wikipedia defines a computer application as:

"computer software designed to help the user to perform a singular or multiple related specific tasks. Typical examples are word processors, spreadsheets, media players and database applications"

We have all of these functions already working in web applications. Google docs for word processing and spreadsheets, grooveshark or pandora as advanced media players, and mySQL databases are extremely prominent. And to make them even more useful, you don’t even have to download or install a web application - all you have to do is type in a URL. And in society today, we have come up with the term ‘web app’ to describe these kinds of social and dynamic pages.

There is an organization called W3C (the world wide web consortium) that basically controls the internet and the standards that it adopts. This organization is made up of the best in the business - the top movers and thinkers in anything related to the internet. And they realized that what used to be called ‘web pages’ have evolved into more than web pages, in many cases. For this reason, when they released the next version of HTML (the language that is used to code websites), html5, they included a number of tools that are useful and/or necessary in putting together not just a basic website, but a web application - local storage being just one of them. But without getting into nerd jargon here, I’ll hope you’ll just take my word for it.

As we also all know, the web is a wonderful world that can be seen through many different lenses. These lenses are commonly referred to as browsers, and you are probably familiar with a number of them - internet explorer, firefox, chrome, safari, etc. In order to display the internet properly, each browser must be built by their company to include various specifications. For example, each page has a title which appears at the top of the window. For web developers, setting this title is as simple as putting it in between <title> and </title> tags. But we must keep in mind that the browser-makers, whoever they may be, must create their browser so that it recognizes the text between those tags, then puts it at the top of the window.

As I’m sure you can imagine, this must also be done for everything on a page. When a word is coded to be bold, the browser has to know what bold is, recognize the tags, and render it as such. When there’s a video on the page, the browser has to load it properly and display it (usually streaming, even). To say this least, this is no easy task (which is why browsers are usually made by large companies like microsoft, apple, and google). In addition, every time the web ‘evolves’ and adds new features, the browser must be updated to accommodate those features.

I know not everyone has the time to update their browsers. Especially within large companies where everything must be standardized, updating everyone’s browser is just a pain, and often is not done. For this reason, a majority of internet users surf the web on outdated browsers. This means that, for us web developers, including the latest cutting edge web technology is a big risk, as it might have disastrous results for many people that don’t use browsers built to handle it. So, sadly, we must refrain ourselves to what works for everyone, although it might be slower or not look as good, so that we can retain functionality for all - after all this is the most important thing. I would far rather have a working webpage than a pretty looking one.

Now you may be thinking, “I thought we were talking about web apps… where could he possibly be going with this?” But worry no more, all ends are about to be tied. Because of old browsers, big companies with popular websites must make their websites so that they look good and work well in all browsers, and stay as far away as possible from new and cutting edge technologies. This is quite literally the opposite direction that we are trying to move the web in.

So why did chrome release the web apps store? To encourage companies to move forward by releasing super cutting edge and modern websites. But not by changing their homepage, by developing a new website to work with one and only one browser, google chrome. Chrome is an extremely well updated browser - in fact, it auto updates to the latest technologies without even prompting the user. So developing for only this browser is easy and safe, and developers can use the coolest new technologies including html5, css3, and new javascript additions, without worrying about anything outdated.

Not quite getting it? Let’s look at an example. Amazon released a “web app” called Amazon Window Shopping. It’s a really cool app, and you can check it out yourself at:

http://www.windowshop.com/

Wait, app? That’s just a website link, you might be saying. Yep, it is, and like we mentioned earlier, applications can be built on the web - they are not only programs that must be downloaded and installed. Someone can get to this website easily in Internet Explorer Version 5 (IE5), a browser that is more than 10 years old. But this website is built with the absolute latest web technology, and it just won’t work right in IE5. This is why their homepage, amazon.com, has not changed - their company’s image is the same. Nobody who uses IE5 really knows or cares about window shopping - it was released as a web app in the goggle chrome webstore, which is not marketed to users of IE5, or integrated into their browsers. So unless other people make a strong effort to, only chrome users worry about it and use it - it is a web application unique to modern browsers.

I hope that I’ve proved my point here, more or less. But in case you aren’t convinced, let me offer you one other argument. Let’s say that my friend here has heard all this and isn’t convinced. “Whatever,” he says, “it’s still just a website.” But is it just a website? Based on what we were talking about earlier, I would say that it’s not. Web apps are dynamic, new, and don’t just display information. They *do something for you* - hence the name “application”. So if you’re real stubborn, go ahead and call web apps glorified bookmarks. Because they are bookmarks. And the Chrome App Store is just a collection of bookmarks to brand new websites on the cutting edge of web development, that will do something for you, and function in a useful manner, rather than just display static information and links. And google search is just a collection bookmarks to every site in the web. So you can call things whatever you want, apps, bookmarks, elephants, whatever. But no matter what you call them, I think that the chrome webstore is a super useful concept and a really cool collection of “glorified bookmarks” to have around.