I haven’t written a proper tech article since before I (re-)started this blog, so I thought it was high time. Besides, I’ve been wanting to write this post ever since I read some articles on Google’s Chrome OS, around the time right after my old blog vaporized. So there’s a couple of buzzwords to hopefully sucker you into clicking the ‘more’ button and actually reading the article – It’s about Google’s upcoming Chrome OS and it’s implications for the web, the desktop and the browser, as well as why desktop evolution can take an alternative path, exemplified by KDE’s budding Project Silk movement.
I’d really like to link to some of the posts I read on Chrome OS as they were really interesting, but I read them around half a year ago and I sadly couldn’t find them anymore. Anyway I’m going to start by doing a brief exploration of what Google likely wants to achieve with Chrome OS. Most of you probably already have an idea of what Chrome OS will be like:
For the uninitiated, Chrome OS is Google’s next attempt at an operating system (after Android). It is based on the Linux kernel and will probably be released late this year. It is primarily aimed at netbooks, with a minimalistic design that basically resembles a souped-up Google Chrome browser. The philosophy of the design is that users who spend most of their time online really need very little else other than their web browser, so Chrome OS will literally be one big browser adorned with little side-applications instead of the traditional one big collection of applications including a browser.
What Chrome OS aims to do
Not surprisingly Chrome OS is already widely hyped as Google’s new weapon in their war with Microsoft, and there are already tonnes of articles discussing whether Chrome OS will be a ‘Windows killer’. I don’t personally think it likely and I’m not alone – even in the netbook market, Ubuntu‘s ultimate defeat at the hands of Windows XP shows that laypeople value familiarity and want their netbooks to be able to run the stuff they are used to running on other computers. Chrome OS has very little advantage over Ubuntu along those lines – except that Google has a very strong and relatively positive public image. The OS hasn’t even been released, and it has probably already generated more hype than Ubuntu cumulatively enjoyed in it’s much longer lifespan. It is pretty likely that Chrome OS will do better than Ubuntu in the market for this reason – but it certainly won’t ‘kill’ Windows. Not anytime soon.
However an article I’ve read (I would really like to give credit but I can’t find it! >.< ) pointed out that Google doesn't need to kill Windows to accomplish their goals with Chrome OS. It was never meant to kill Windows at all. The article points out that what Chrome OS can really do is allow some new ideas to begin germinating and spreading amongst the end userbase. It is the next calculated step in Google's bid to slowly move everything we now do offline into the web. It is no surprise that Google started out by assembling a formidable suite of online machinery that often parallels current desktop apps in one way or another - most notably Google Docs, and to some extent also Youtube, Gmail/Gchat, and now Google Wave. When Google released the Google Chrome web browser, it seemed like a rather random move, but they have been able to leverage it to help push powerful new ideas into web standards that would make the web an even more appealing platform to developers, who will in turn be compelled to build more powerful and more interesting programs on it. And now that we look back on it, Google Chrome may really have been a dress rehearsal for Chrome OS, when Google will finally release a full-fledged computing platform that relies almost exclusively on online services and applications. Chrome OS is Google's proof-of-concept for a future where everything - both data and the programs and services that manipulate them - will live on the wide web. Why we can do differently
So this is Google’s dream – the universe in the browser. What’s more, they seem to be doing a pretty good job gradually nudging us there. But I don’t personally think this is the inevitable path of evolution for end user computing. I don’t personally find it a very appealing path either, and the things I’ll be talking about below will probably explain why. What’s definitely true though is that, more and more, I am finding the browser a rather unwieldy piece of software in today’s end-user computing climate. Innovation on the browser has been relatively slow despite there being multiple parties working on it, and the browser today isn’t exactly a fundamentally different creature from the first Netscape browsers that we used – we just got more tabs and better ways of remembering and revisiting favourite sites. The thing that has really been changing and enhancing our web experience is changes in the wide web itself – the evolution from static web pages to having guestbooks and then the appearance of forums and blogs and wikis and now powerful social networks. However, the influence of web-bound technologies will always be rate-limited by hardware – network bandwidth, speed, reliability – as well as Internet availability, which is still atrocious in some countries, and doesn’t look like it’s improving in too much of a hurry. In other words, it’ll probably take a looong time before we have the infrastructural power needed to support a truly ubiquitous computing platform that exclusively relies on web technologies. In yet other words, even if Google wants to diminish the desktop and ‘replace’ it with the browser, it’s not gonna happen soon. So the desktop is gonna be sticking around – what does it do in the meantime? Sit around and wait, maintaining an awkward relationship with the browser?
I think the desktop can do better. I think there are a lot of things the desktop can do to stay relevant and exciting in at least the near future. And I think, in the context of this article, one of the fundamental things the Desktop should be doing, is
Deconstructing the Browser
I think the main problem of the browser in the present desktop system is that it is just another desktop program, yet it can do so many amazing things because the web has evolved so tremendously. Outside of the browser you have a collection of powerful desktop applications who collectively and in synchrony can do a lot of wonderful things. Inside the browser you have a collection of powerful web applications who collectively can do a lot of other wonderful things. The browser is, quite simply, a bridge too narrow. With so much power on either side, it is only natural to want to be able to collaborate the two seamlessly, and there is no way a single generic program like a browser would be able to provide for the many different possibilities of integration.
The answer is simple – if the browser is too narrow a bridge, create more bridges. There is no reason the browser should be the only desktop application that consumes web content. The web is getting inexorably more and more powerful now and so the natural thing desktop apps should be doing is evolving to work seamlessly with the web. This is already happening to some small extent – Windows Vista came with little (admittedly rather useless) desktop gadgets that could display RSS feeds on your desktop as well as retrieve weather information online. I’ve been told that in Windows 7 you can key in web urls of pictures or documents into common desktop applications like paint and wordpad and they will seamlessly open it as if it was a normal file. At KDE we have been up to even cooler things. Thanks to KIO, we have long been able to seamlessly browse and edit files through the web using the desktop’s default file manager and editors. Instead of publishing desktop themes and widgets on web sites where you need to download them, KDE has integrated a technology called ‘Get Hot New Stuff’ into the desktop that allows you to directly browse the online collection and instantly download/install it from the desktop without ever touching a browser – while still maintaining the standard web interface for people who prefer using the browser. And perhaps the most shining example of desktop-web integration is in KDE’s amazing Amarok music player.
Amarok has plugins that directly consume content from popular web sites and displays them to you as you play music. For example it can look in Flickr for photos of your currently playing track’s artist and display them in a nice slide show to enhance the mood, or display a Wikipedia page about the artists, or look up the lyrics of the song, or even look up similar Youtube videos and offer to play them – inside Amarok. Think you need a web browser to browse Youtube? Amarok has changed that! And this is what it is about – enhancing the power of desktop applications by giving them the ability to consume from similar web services. The possibilities are endless. Fact is that we have come to rely on the browser for too many things, and if you really stopped to think about it it’s really rather senseless. When I’m listening to music, why do I need to open an extra browser window just to find lyrics or look up artist/album information? When I’m writing a document, why should I have an extra browser window to look for material? When I’m writing a program, why should I have an extra browser window open just to look up API references? The browser is today trying to do too much! This awkward work flow needs to change – we need to make our desktop programs more ‘web-sensitive’ and independent of the browser. (Remember the documentation widget I built into PlasMate?). At KDE we have already identified this as a critical path in the evolution of the desktop, and are already setting plans in motion to this end. We even have a cool codename for the movement – Project Silk.
I think what we need is for other desktop systems – Windows, Mac OS X, even Gnome and the plethora of other Unix DE’s – to follow suit. Web standards and conventions today are still highly geared towards the browser, making it a little difficult to adapt those technologies for consumption by other applications. But if enough desktop applications start doing it we’ll be able to create a demand for more versatile web services and technologies, and so skew the evolution of the web so that it becomes progressively more integrated into the desktop. The end result could be a network of providers that live on the web who provide services and data that are consumed by various exotic combinations of consumer applications that live on the desktop. We would still inevitably be moving all our data and tasks into the cloud, but we would probably be able to retain much more choice on how we are able to interact with the things on the web by choosing different combination of consuming programs. That wouldn’t be half bad, and I personally think it sounds a lot more exciting than the “universe in a browser” dream.
But of course, the future is just speculation. The main point though is that there is a pertinent need now, I think, for a more web-aware and relevant desktop. And the sad thing is I don’t see this being really pushed for in any of the desktop environments I’m familiar with, except KDE’s. How about we buck up?