There are several levels to practical software freedom. Even though a strict definition would only require an appropriate license be used, there are many more aspects we should care about. The most obvious one is root access for the end user. This comparison covers the four points I feel are most important:
- User Access Rights
- Cooperation and Interoperability
- Presence of Closed Source Software
- Freedom in Practice
User Access Rights
With mobile phones, control over your own device has never been something to take for granted. Many existing platforms do allow users to run their own software, but even then often at the mercy of security policies targeting malware. Further muddling things, the limited nature of traditional mobile operating systems made the usefulness of such access questionable. More powerful hardware has now made it possible to run Linux on mobile phones without sacrificing power consumption, and users should expect more.
Both Android and Maemo can claim that the core software is Free, but we are so far only discussing access rights. Unfortunately for Android, none of the vendors actually making devices seem to be concerned about granting any. While not as hard as jailbreaking an iPhone, users still have to go out of their way to get full access to the system.
Maemo, on the other hand, is developed directly by Nokia, which is going to ship its hardware with root access available out of the box. The only step users need to take is to install one package from the official repository to confirm they've read about the risks.
So if Android devices are easy to root, what's the problem here? There are several:
- Beginners aren't even going to consider doing it. Freedom shouldn't require expertise, and who are we to say that no novice has a legitimate need for root access, ever?
- Advanced users should not put up with having to hack their own device. Some may feel leet after doing so, but in reality they've accomplished nothing except paying for a crippled product. Users shouldn't have to fight the operating system, and lose vendor security updates in the process. An operating system that needs to be hacked is inferior in use even if users can regain their freedom.
- The market will be fragmented between hacked and unhacked devices. Users running hacked platforms can never be sure they'll be taken into account in future products and services.
Winner: Maemo on Nokia hardware.
Cooperation and Interoperability
We could write the most amazing text editor, but if it only ran under a Nintendo emulator, it would be virtually useless to anyone else. There is nothing inherently wrong with such an editor, but we're probably not going to get much cooperation going, and you might even question the motives of a developer advertising such a program. This is why simply licensing something under the GPL isn't always enough.
What cooperation means to each individual is best discussed elsewhere, but we can clearly see which platform is ahead of the other.
Maemo is a stripped down Debian GNU/Linux that runs a mobile-optimized window manager on a standard X11 window server. What this means is that code can easily be shared with virtually any existing Unix-like Free operating system. As a concrete example, the Hildon toolkit Nokia developed for creating mobile-friendly applications has been adopted by Gnome and is used on Ubuntu Mobile Internet Device Edition.
Android runs on the Linux kernel, but applications are developed for a non-standard virtual machine. A native SDK has been released, but it's only designed to allow performance critical parts of VM apps to run native. In short, Android is nothing like what one would expect from a system using Linux as its kernel, and developers are in practice forced to use Java with non-standard bytecode. One might even suggest that Google has done this on purpose, in order to limit interoperability and push users towards its proprietary web services.
This is of great consequence even to users who understand none of it. Maemo can theoretically run any desktop Debian application. In practice, the UI must be adapted for mobile use, and packages must be modified to avoid the minimal N900 system partition, which exists on faster hardware than a larger partition. For developers, this is still a piece of cake compared to porting to Android, and users are free to install a chrooted full Debian subsystem to run desktop apps without modification (link goes to package description in previous Maemo version).
Going even further, Qt-based apps will also run on Symbian and Windows in addition to Unix-like operating systems.
Presence of Closed Source Software
While it would be nice if everything were Free, users must often compromise to have a fully usable system. Video card drivers have been a historical sore spot. Intel was for a long time the only vendor that took Free drivers seriously, but its hardware was never targeted towards heavyweight gaming. As a result, many users chose to use proprietary drivers. This is unfortunately the case even with phones.
Both Android and Maemo include other closed components as well. This was recently highlighted when Google prevented CyanogenMod from distributing many apps for hacked devices. While reactions to the ban were overblown, this does reveal the problem of having closed components on otherwise Free systems.
On Android, the closed apps include GMail, maps, talk, etc. On Maemo, they include similar features. Neither is a large problem. In Nokia's case, the company has to do something to differentiate itself from competitors that might otherwise ship the OS without contributing any R&D money. Google is probably having trouble profiting at all, since it doesn't even make devices. Under such circumstances, closed source software can become attractive.
Winner: None, but neither is catastrophic. Much work is left lobbying for better graphics drivers, but there are plenty of Free email clients.
Freedom in Practice
The mobile phone market is further complicated by the fact that many users choose to buy their devices from network operators rather than device manufacturers. This is true especially in the US, where operators do their best to ensure that users have the least possible access rights. What will happen to Maemo and Android remains to be seen if this continues, but historically Nokia is the only major manufacturer to seriously try to push unlocked devices in the US (with little success).
As a glimmer of hope, T-Mobile has introduced its new "Even more" and "Even more plus" plans, one of which is $20/month cheaper than the other and doesn't come with a phone. Over 2 years time, the difference adds up to $480. Previously it has often been the case that US users have been forced to pay the same price whether they bought their phone separately or not. But will this be enough to entice the average user away from deals that claim the phone only costs $99?
Winner: Uncertain, but Nokia has demonstrated more willingness to side with the user.
Maemo isn't perfect, but still much ahead of Android. Development for Maemo has the potential to benefit existing Linux distributions, and many desktop apps will surely be interested in adding a mobile-optimized GUI as a compile time option. CLI applications will work without trouble, and experienced Linux users can easily connect to their desktop computers using SSH and X11. The Nokia N900 officially supports root access.
Android is an island of its own, and useful code sharing is largely limited to the kernel. Developers can't even always use the language of their choice. Android hardware manufacturers can't be trusted to allow users the freedoms the software would grant, let alone fight network operators.