Technology analysis of the latest gadgets, consoles, and computer architectures.

Saturday, October 04, 2008

The New Age of Desktop Computing

From Google apps to Sparkpeople to Facebook apps to Hulu, web applications are taking a more pervasive role in modern desktop computing. We are now able to bank online (uwcu.org), manage a budget and organize transactions (mint.com), and play a game of Go with friends (Facebook.com) without having to rely on anything but an internet browser running on any computer anywhere with an internet connection. It has become so commonplace now that many people may not realize that what used to require an investment of some sort (be it time, money, computer resources, etc.) now require mere seconds to access and use. At what cost will the increased reliance on web applications be? How will this affect the way we use computers in the future? Although I could probably write a book on these topics alone, my goal with this blog posting will be to try and set certain guidelines for web application developers (and users) to keep in mind to ensure that the users' needs are met while capitalizing on the future of desktop computing.

From the 1980s when desktop computing exploded until less than a few years ago, a traditional desktop computing experience would have consisted of a Windows or Mac OS-based machine bundled with applications that serve a variety of tasks, such as productivity (Microsoft Word and Excel), entertainment (Winamp, Windows Media Player, DVD Player), creativity (iPhoto, Fruity Loops), and games (Unreal Tournament, Quake 3, Warcraft 3). Much of the time, many of these applications were bundled with the OS or purchased at the store. Once the Internet became more accessible to computer users, programs were commonly downloaded and installed; I probably have at least 4 CDs worth of downloads, and many more burned CDs of old Linux distributions and floppies of even older backups of downloads before I had a CD burner. It sure was convenient to have enough space to install all of these applications on my computer; I shudder thinking back to when I had to delete an application to make room for another on the 40 MB hard drive of our Apple Mac LC II.



But then, in the mid-1990s, the Internet became more affordable and widespread, and content distribution online provided a means to reduce the acquisition time of software, music, and on-demand video from potentially days, weeks, and greater to hours, minutes, seconds, and milliseconds. AOL provided a new avenue for interactivity and communication, providing channels with initially text-based and then audio and video-based content, and giving millions of people access to e-mail, chat rooms, and instant messaging. E-mail started moving away from the desktop; instead of Microsoft providing access to one's e-mail through desktop applications such as Outlook, AOL started providing e-mail within its all-encompassing Internet application. Many other companies were providing e-mail services during the same time period, but AOL was the one that began the trend of de-emphasizing the importance of the desktop application. Yes, for much of its life, AOL was a desktop application, but with AOL it no longer mattered where you, as a user, were when you connected. You could go to your friend's house and, assuming he or she had a computer, a modem, and a phone line, you could connect to AOL, check your e-mail, browse your favorite "channels", and chat with your friends.

But alas, things changed once more. People realized that there was a world outside of AOL, and that avenue was provided to you by Internet Explorer and Netscape. Schools started outfitting labs of Internet-enabled computers, and instead of AOL people now had Yahoo Mail and Hotmail accounts. My dad listened to the Voice of America using Real Player over the Internet; teachers would listen to music online during Study Hour. E-mail and directory services became the first true web applications, followed by portal pages (such as my.yahoo.com) and search engines. Soon, news and media outlets were springing up online; Launch Media went from sending music videos and interviews bundled around a Flash interface in CD form in the mail to serving on-demand music videos at launch.com. And at this point in time we started seeing more "enablers", or desktop applications, that served the sole purpose of decoding packets from audio, video, and textual services off the Internet. Real Player was extremely popular for streaming audio and video, Winamp for shoutcast [online radio station] streams, and PointCast for news. Macromedia Flash was mostly being used for animation in desktop applications, just as Adobe Acrobat Reader was used for universally viewing documents.

Then came the dotcom boom, or, in more desktop-centric terms, the migration of transactional-based services (and applications) onto the Internet. Along with the added power of the search engine, consumers could now go onto the Internet to learn about new products and become more exposed to competitive pricing than ever before. Most importantly, moving transactions online meant that consumers could buy anything from anywhere instantly (and wait 5-10 days for the item to arrive at your door).

Finally, the desktop applications started to migrate over to the cloud, one-by-one. AOL moved e-mail and eventually their content to aol.com. Microsoft moved Money to money.msn.com (see My Money). Intuit TurboTax moved to turbotax.intuit.com. More and more people are now relying on Google, Yahoo, and Microsoft to retain their e-mail and handle virus and spam detection. Even virus scanning has moved online. Although originally initiated by companies touting the "Web Operating System" or "Web Desktop" (and you've probably noticed by now that I regularly use an online encyclopedia and dictionary), we are now seeing popular productivity apps brought to the net by the likes of Google and Microsoft, music players by the likes of Last.fm and Pandora, and video players by the likes of Youtube and Hulu. There's even online photo editing and video editing apps, online backup solutions, and [ajax]Windows.

And last but not least, chat and chat rooms have evolved into blogs, forums, and text article comments, leading to the social networking revolution. Despite the fact that ajaxWindows looks to be one of the closest, most comprehensive replicas of the desktop computing experience, I would argue that Facebook, Google, and Yahoo are poised to become the face of the new age of desktop computing.

I'm going to start with Facebook. Facebook caught be by surprise when they announced the Facebook Application Platform. I absolutely reviled by Facebook when I first heard people talking about it. It seemed to me like a dating service mashed together with college kids who needed another avenue to waste time talking about people and events (and how drunk they got last night). Eventually (almost 3 years after its advent), I gave in, not because I was bored and needed something to do (trust me, the UW School of Engineering kept me plenty busy), but because I had seen the nice, clean interface (thousands of times better than MySpace), I was concerned about privacy, and I wanted a better way to stay in touch with all of my friends. Most of all, Facebook provided me a means of having a visual representation of my social graph and establishing contact with friends (and friends of friends). So I created my profile, and due to lack of time my activity remained relatively low until the applications started coming in. Photos, Events, the Wall and the Inbox became incredibly useful for sharing and viewing photos from events, inviting people to events or having access to a live birthday calendar, and exchanging messages, both publicly and privately. Then the Application Platform was created, the applications started rushing in, both from Facebook and third-parties, and I found myself using Facebook as a tool to share photos, notes, and videos privately with my friends from my trip to the Philippines. Just recently, Facebook has put on a new look, and the platform is starting to look more and more like a desktop computing environment. Just take a look at Facebook's new interface:



Notice anything familiar? I see a start menu, quick launch, and task bar at the bottom and a menu bar at the top with a search box at the upper right. Scary, huh? Well, maybe it's not exactly frightening the way that organized religion may destroy the world, but it is pretty amazing how close the mainstream has come to a web operating system. With the appropriate host operating system (including the browser), Facebook could easily become the new Windows. No wonder Microsoft made such a significant investment in Facebook...

Yahoo is next in line. This may surprise some people, considering the bad press Yahoo has been getting during the past year or two. But just keep in mind that it wasn't too long ago that Yahoo was king on the web. Even today, Yahoo still has much content and services that rival Google, Microsoft, and AOL. Being the original directory service and providing the first mainstream web desktop to the masses (my.yahoo.com), it shouldn't be a surprise that Yahoo is poised to be king in content, assuming management succeeds at merging all acquired and organic business units successfully around a solid ad platform. And now, they have made the next move, arguably one of the most important decisions since Facebook created the Application Platform: Yahoo has opened up their platform to developers. Essentially, Yahoo has done to the net what it has been trying to do to its business units: create one common platform and one common interface for users. With this move, Yahoo will migrate from being a suppressed voice in social network to a much more prominent one. How else to best compete with Google and Facebook than to more tightly integrate their "10 billion" users of Mail and Messenger to other Yahoo platform applications, websites, advertisers, and other future content producers. In fact, this is a move that makes Google look like they're falling behind.

But Google does have one thing above both Yahoo and Facebook: an ad platform that is extremely effective, and web applications that provide a great web computing experience.

Google has been incredibly active, both organically and through acquisitions, in replacing desktop applications and suites with web-based equivalents. In fact, Google now sells a $50/year/user online productivity suite to businesses that provides e-mail, calendaring, chat, word processing, spreadsheet, and video applications with 10GB of online storage (and 25GB for e-mail). And Google has put the power of Keyhole's desktop application for accessing Earth satellite imagery to maps and has become one of the top destinations for directional-based services.

Google understands better than both Facebook and Yahoo (and almost the entire web community) that a new age of desktop computing is brewing, and Google wants to play an integral part in that. They understand why people have hesitated to adopt these technologies, and are taking steps to ensure more widespread adoption. They have been able to offer commonly used desktop tools to Google users' fingertips. They have taken advantage of the most powerful current web technologies (Flash, AJAX, Javascript) to provide a fast and reliable user experience with their applications. And they are trying to be everywhere, going as far as creating a universal open source phone OS and pushing for widespread adoption to increase usage of the web (and, in turn, Google) in more and more places. And innovation is key, adding APIs to as many Google applications and services as possible to encourage development and usage in many applications and devices.

Finally, Google has an overall system design perspective which is very comprehensive and relatively unique to the web landscape. Google understands that the final step in widespread adoption is to demonstrate to users that the personal computing experience that everyone is used to with their desktop or laptop can be effectively replaced with online applications and services, and at the convenience of accessing and producing anywhere and everywhere, at any time, with any device. As much of a dream this may be for some people and businesses (i.e. the Cloud Computing Initiative), it is somewhat comforting to know that one day the device in your hand need only be powerful enough to provide your user interface and a quality user experience with the services (be it voice, video, etc.) one wishes to partake in.

And to provide this experience, in addition to banking on web technologies, Google has moved onto the desktop, providing a toolbar and applications that create a better overall experience. Google Desktop provided a means to search desktop files and e-mails along with web content all in one place. Google Toolbar provided a one-stop shop for search and Google apps / services. And finally, Google Chrome has provided a fast, reliable experience with Google apps.

Google Chrome should not be looked at lightly. Although the browser is in big part a result from the development of Android [Mobile OS], in a day and age when the browser is becoming more and more the avenue to the new age of desktop computing, Chrome poises Google to become an extremely powerful adversary to Microsoft. This leads me to the main point I've been trying to make (and the reason I started writing this blog posting).

Moving the desktop computing experience isn't as simple as providing the same applications in an equivalent form onto the web. When computing power has come so far that all modern computers can handle most common tasks without any noticeable performance difference to computers 2-4 years old, it is understandable that the desktop computing experience has begun to move more rapidly to distributed, remote systems (such as Google) or to slower, smaller form-factor and/or low-power devices such as the EeePC, the Nokia N800, or the iPhone. But the major difference between moving the applications between other, slower devices and to remote systems is that the source of the speed degradation affects the user experience significantly. Moving applications from fast, local compute systems to slow, local compute systems is not the same as moving applications from fast, local compute systems to fast, remote compute systems, because response time is key. With slow, local compute systems, you lose compute power, but you don't necessarily lose response time, so the user experience only degrades slightly, and can be managed. With fast, remote compute systems, unless your task requires a significant amount of compute cycles (which most modern desktop compute tasks do not), the increased response time will outweigh the gain in performance, and the user experience will remain unbearable for the unforeseeable future. So I would argue that the only true migration path to fast, remote compute systems is to provide techniques to make the user experience as close as possible to the desktop equivalent, and the only way to properly do that is to reduce the amount of requests sent to the remote server. This is the main reason Apple had to create an SDK for the iPhone; the users did not find the long mobile network access time acceptable for the web-based applications they wanted to use. And this is why Google ultimately needs Chrome: to continue adding enhancements to both the web technologies and the browser to ultimately keep response time low for the applications users want to use.