In reaching for a catchy title for this article, I chose one that references a particular series of books. This was not completely unintentional since I was already aware that one of the blogs I follow is written by an author of a book in that series. While my reflections are not really about how computing platforms influence the creative work users do on them, perhaps the article that inspired this one can be classified as a platform study of sorts.
I was interested to read a recent article by Henri Bergius about his experiences using Android as a work platform. For many users, Android has become a practical alternative for many kinds of work and provides a simple and familiar user interface for non-technical users. It is now also very common, becoming the mainstream computing platform for anyone not tied to legacy applications running on a grey box in some office somewhere. It is at this point we can compare it to the platform it is replacing in many areas of work and life: Microsoft Windows.
In terms of its ubiquity, Android certainly seems to be the new Windows, but it's also worth thinking about whether it is the heir to the Windows dynasty in other ways. A lot could be said about whether Google controls the Android platform as strictly as Microsoft controls Windows, and whether the manufacturers of Android hardware are beholden to Google in the same way that PC vendors were to Microsoft back in the 1990s. However, for technical users, particularly those from a Free Software background, another interesting question arises: how Free/Libre or even Open is the software running on your phone or tablet? Is there even a way to check?
In principle, the software running on your phone is Open in the sense that the kernel is Free Software – or it was when the vendor or one of their contractors downloaded a kernel from kernel.org or elsewhere – and many of the user-space components running on it were originally supplied under Free Software licenses. However, while it may be possible to download the source code for a kernel and, if you're lucky, some other components from the vendor's website, there's no guarantee that what you get is the same as what was supplied on the device itself. Actually building and installing a replacement kernel, operating system or other components may be an insurmountable struggle, particularly given the scale of the software stack being used and the locked-down nature of many devices.
The amount of effort required to verify and replace part or all of a software stack may be given as an excuse for why users should not need to do it. Why bother the users with this, making the product complicated for vendors to support, if they will need a build farm to realistically have a chance of updating their phones themselves? But this is a symptom of the monolithic way that Android is deployed – a limitation on freedom caused by technical shortcomings in the way a product is delivered, or perhaps just the result of making it convenient for vendors to put a product together quickly. Couldn't we have a system that was designed with Software Freedom in mind, rather than something we have to chase up afterwards?
One thing that's missing from Android is the ability to easily get the source code of the programs running on a device. If you use F-Droid (ideally on Replicant instead of Android) you can usually find a convenient link to the source code of an application, typically in a repository, but that's about the limit of the openness and transparency you can expect. It certainly reminds me of what it was like to use a closed, proprietary operating system where freedom is a third party add-on.
On the Debian operating system it is possible and convenient to get the source of practically every running component simply by opening a console and typing apt-get source for whatever it is I want to look at. Other GNU/Linux distributions offer similar tools. The Sugar learning environment goes a step further, allowing the user to view the source code of the activity they are running. Of course, it helps that many of the Sugar activities are written in the Python language. Ironically, there are applications that provide Debian environments for Android devices, adding a layer of freedom to closed devices but failing to address the underlying limitations of the system they run on.
So, while Android is a step forward for many users, it is a step backward for those of us who have come to expect a level of freedom and transparency in our computing platforms. Android is seen by many as a victory for Open Source software since now Linux, the kernel, is everywhere, but this doesn't automatically translate to a victory for Software Freedom. It doesn't matter much if the new mainstream computing platform is in some sense more open than the old one if it doesn't give users more freedom in a practical sense.
I didn't start this article with this in mind but, on a related note, I should mention that Software Freedom Conservancy is still looking for supporters to help fund their efforts. I suppose this does tie in nicely with some of the themes of the article, and it also turns out that Sugar Labs are a Conservancy member project. I renewed my support for Conservancy at the end of last year because I think what they do is worthwhile, greatly needed and, unfortunately, often under-appreciated.
Categories: Free Software, Android
Copyright © 2017 David Boddie
Published: 2017-02-11 17:49:43 UTC
Last updated: 2017-02-11 17:50:03 UTC