We’ve seen a radical change in personal computing over the last decade, but the latest paradigm shift seems to have brought a bit of a backtrack on our best predictions. As to where we were heading? It’s growing increasingly fun to watch.
Five years ago any self-proclaimed expert would tell you that we’re moving away from personal computing and toward a “cloud computing” ecosystem; one in which all our software runs on the Internet. While ubiquitous web services like Hotmail, Facebook, Google Apps and Flickr seem to back up this notion, there’s a few interesting developments which are blurring the lines and promising to mash up the cloud with the desktop.
Frameworks & Offline Storage
In February 2007 Adobe released AIR, their cross platform runtime environment for developing desktop applications. What’s interesting is that instead of being based on a traditional compiled languages like .NET and Java are, it utilises existing web technologies like Flash and Javascript to create sandboxed desktop applications out of the very same tools that power the web.
Since then, there’s been a plethora of webapps ported to the platform because of its short learning curve, effortless cross platform functionality, and strong ties to existing web languages. A search through Adobe’s online marketplace for Twitter apps alone will return almost thirty hits, which quite possibly makes it the de-facto language of choice, at least for Twitter desktop clients.
It’s not the only framework that’s looking to leverage this new phenomenon either. Mozilla Corporation‘s upcoming Prism is aiming to be a lightweight and open source “webrunner” with similar features and a more standards based approach than Adobe Air. Another player, Appcelerator, Inc has also released Titanium which is Apache licensed and a direct competitor.
While there’s currently no collaboration between projects, the latter two have one important difference that sets them apart from AIR: standards.
AIR (and to some degree Titanium) has its own proprietary API for advanced functionality, but the Prism is looking almost exclusively at upcoming technologies such as Gears and HTML 5 to deliver things like offline storage and advanced graphical features. The benefit of the latter is a synchronicity between applications, bringing the possibility of platform-independent webapps that run anywhere in the same way today web sites can display across any browser.
Ubiquitous Connectivity
This focus back on the desktop is driven in part by an integral change in our workflow.
In the early days of computing, you would probably have needed to access a “dumb” terminal, which was then wired into a massive great central computer — the mainframe — which would do all the hard work. This was an appropriate architecture for the time because terminal clients were nowhere near as powerful as they are these days, and you certainly wouldn’t carry your computer around in your backpack with you.
Through the ’80s and ’90s this all changed, with the advent of powerful desktop computing you didn’t need the aid of a powerful central computer to do all of your work, and the mainframe structure became mostly obsolete.
When the Internet, and especially web 2.0 became mainstream, people started thinking in terms of mainframes again for a different reason. The connectivity of the Internet facilitates all kinds of social and pseudo-social applications, and the mainframe architecture makes this much easier to develop for. With thousands of millions of users running a multitude of different operating systems and version numbers, desktop-based software becomes a nightmare to manage. Microsoft is having no end of trouble, because many people don’t understand they need to upgrade their software, let alone pay to do so.
So while everyone expected the “browser as an operating system” model to relieve these pressures and bring an all-new social computing experience, the desktop-based webapp has crept in and changed the playing field once again. Built on open standards and generous APIs, this new creature blends the best of both worlds.
So what now?
Numerous frameworks and languages are nowadays available and aimed specifically at producing rad web apps, but the question remains: where do we go from here?
With the amount of work that’s gone into accessibility on the web, will this make desktop web apps more, or less useful to those who need these features most? With standardised environments such as AIR or Prism will we still need to focus on graceful degradation for other platforms, or will accessibly standards like WAI-ARIA finally be all we need to focus on with Javascript driven applications?
The answers to these questions may seem obvious but I’d propose that in the same way browser sniffing in the ’90s seemed a good idea at the time, the abundance of webapp platforms may eventually prove to be more tricky to unify than we anticipate.