Ubuntu now runs on the desktop, phone and tablet. The tablet version completes the set and makes Ubuntu the only operating system that covers all platforms. Is this enough to give it an edge?

From the user's point of view Ubuntu for Tablets looks like a really interesting proposition. It is more-or-less full Ubuntu and it integrates desktop, phone and tablet into a single experience.

The key feature that makes it different is arguably that it supports true multi-tasking. This is a feature that other operating systems have removed from their tablet versions because, it is argued, it isn't appropriate. Multi-tasking and multi-windowing might be deemed inappropriate simply because it is difficult and/or overtaxes the hardware, but it is something that users really want.

Ubuntu for Tablets comes with the sort of systems you would expect to find on a full Linux implementation and, as well as multi-tasking, it also supports multi-user. Yes, people can log in with their user name and password and access only their own files.

To make it more like a tablet experience, however, we not only have touch, but a range of new user interface features such as Edge Magic, which pops out a control panel from each edge of the screen. It also has a voice-controlled, heads-up display - although how useful this will be is questionable.

You can see the entire marketing pitch in the following video, which is worth watching:

From the developer's point of view the real attraction is the idea that a single app could run on all platforms. You can even design your app for the Ubuntu phone and see it run on tablet in a special area called the side stage without changing the window size.

You can create apps using HTML technology and Ubuntu treats these on an equal footing with native apps. Of course if you restrict yourself to HTML then you can already create apps which in theory run on all platforms. What matters is how much of the underlying hardware services are exposed to the JavaScript and at the moment this isn't made clear.

Native applications are also supported and you can use a range of languages to create them, but Python seems to be preferred. The UI is created using Qt, which is fairly simple. However, it isn't clear what access the API provides to the hardware - GPS, phone, accelerometer etc. There is also the small issue that the phone version of Ubuntu uses QML, a JavaScript-like declarative language for the UI. Exactly how compatible apps for phones, tablets and desktop are at the moment again isn't clear. However, what matters is Canonical's clear commitment to making the platform uniform. A combined Ubuntu 13.10, with phone and desktop code in one release, should be available in October this year.

Of course, with Ubuntu the problem is really the hardware. Trying to find hardware that comes with the desktop Ubuntu installed is possible, but isn't as easy as for iOS or Windows. For the tablet and phone versions you are very much into DIY. There will be preview versions of the OS which will install onto the Nexus 4 (phone) and the Nexus 7 and 10 (tablets). This is certainly hijacking Google's hardware to get Ubuntu off the starting blocks. How easy it will be to install and how easy to remove is something that will only be revealed in the (very near) future.

There have been statements that Ubuntu phones are under development and will be available some time in early 2014. There is no news about custom tablets.

So should you code for Ubuntu?

From the technology point of view it is attractive, especially if you already know Qt/QML. However, without the support of hardware manufacturers, the market size for Ubuntu mobile apps is very small - you could say close to zero.

Google Code-in is a contest that introduces teenagers to the world of open source. It takes place entirely online and is open to students between 13 and 17. Now in its seventh year GCI runs until Janu [ ... ]