I have been talking about the convergence of telephony and desktop computing for years. Nowadays, more and more companies are announcing small devices ("netbooks") that will run Android -- and we are not talking about phones here. Is this the beginning of a new revolution? Or maybe not?
What is Android? The short answer could be "A framework made up of the Linux kernel, a rich set of libraries and tools and a Dalvik virtual machine". The Dalvik virtual machine can be seen as an highly optimised Java Virtual Machine (this definition is not formally correct, but it will do for this post).
This isn't the first time somebody tries the pair Linux+Java to create an alternative, heaven-like desktop environment. Sun tried something similar a few years ago: it was called "Sun Java Desktop". There was an "interesting" review on Linux.com about it and about the support offered. Nowadays, SJD has "reached its End Of Life. SDJ failed.
The next attempt to bring GNU/Linux to the desktop is being made by Ubuntu, which has undoubtedly made a difference in the GNU/Linux world. However, it seems that Ubuntu has brought GNU/Linux onto the desktop of many existing GNU/Linux users, but it hasn't quite eroded much of the existing desktop market. Despite my hopes and desires, it seems unlikely at the moment that Ubuntu will erode significant amounts of market share from OS X and Windows. It is happening, but it's a very slow process -- a bit too slow. I would like to see GNU/Linux on most computers within my own lifetime!
What about Android?
But Tony, didn't you love Ubuntu?
Yes, I still absolutely love Ubuntu; I think it's an absolutely fantastic GNU/Linux distribution. However, I feel that its main drawback is that it was derived from a server-orientated system. Users need to Apt-get applications (graphically, or using a fancy user interface). There are library problems, dependencies, and a not-so-clear separation between end user applications, support libraries and system libraries. Compare this to OS X, which is in my opinion the desktop operating system done right: an application is a self-contained set of files; to copy Firefox over, you do what you expect: you drag it onto a memory stick, and there it is. Old binary applications will run find on newer versions of OS X. When I installed OpenOffice 3.1 on my Intrepid Ibex Ubuntu system, I realised that there is just too much server-ness in Ubuntu, and that OS X got it just about right.
Fast-forward a few years: Google, after a few flops (OpenSocial? Google Answers? Google Checkout?), Google came up with something that has a real chance of seriously change the world: a fully free, client-side system based on GNU/Linux.
People have been using Android applications for a year now. There is a fully functional app store, where a lot of applications are available at no cost or as free software. Android comes with a strong separation between end-user applications and the environment underneath, and its applications can run on any Android phone without recompiling anything.
More interestingly, hardware makers are making (or are considering making) small laptops which will come with Android rather than Windows XP (!) or Ubuntu. This hasn't happened yet, but everybody is expecting it.
More interestingly, Ubuntu developers are talking about finding the best possible way to integrate Android applications within Ubuntu. This pretty much confirms that they expect Android to be "the next big thing" in the client-side computing world. Write once, run everywhere -- for real this time.
I don't know. First if was "network computing". Then it was Java. Now Android. As much as Android can be considered mature in terms of a phone-like environment. If used on a laptop, will it recognise your scanner or your printer? Will it recognise an external webcam? Will OpenOffice ever work on it? What about a secondary monitor? Will we ever be able to create proper Android applications in Python, or Ruby? These are just a few examples -- in some cases, other desktop distributions spent years figuring them out. The idea of having Ubuntu as a base operating system, and the Android framework to run applications, really appeals to me. Ubuntu's making great progress. The server-ish part of the deal can be managed by Ubuntu and Canonical, whereas the end user applications could be just Android. But this is just an idea -- yet another idea by a random author trying to predict the future.
In order for it to "work" in a laptop environment, Android applications should run as normal windows in the Window Manager, and there should be at least some freedom in terms of which language they are written in. Being locked into using just Java sounds utterly insane to me. These are the two major issues -- but I am sure there are others. And sadly, I am sure that between now and then (it might be a few years...) yet another contender will come along. And it will look just as promising.
Yet again the slice of computing world trying to grab Microsoft's dominance is fragmented, competing and in desperate need of direction.
We shall see.