Writing about my successful migration from a MacBook Pro to a Chromebook -- two years after the original transition -- led to the inevitable denunciations from certain ideological absolutists. I got comments like, “So you like proprietary OSes, good for you I guess,” as if I was choosing Windows.
I still long for a fully open source solution, but one of my fundamental requirements is that I don't take on a new full-time hobby to keep it working. When I threw out Windows nearly a decade ago, it was in no small part because it required too much of my time applying updates, maintaining malware protection, and fixing drivers after my kids used it for playing games.
I have also repeatedly evaluated GNU/Linux as a platform for my daily writing and administration. Each time, I’ve found it fairly easy to install (moreso every time I try) and easy to add applications. I’ve never had problems with malware, but at some point in the life of the system, a problem arises that at best causes an inconvenience (like the sleep mode failing) and at worst leaves the system impossible to boot.
My longing for open source purity found me switching to a GNU/Linux system for a while earlier in the year. Breaking my usual rule of using only preloaded operating systems, I bought a Samsung Series 5 Ultrabook at my local supermarket, wiped Windows (we haven’t allowed it or Office in the house since 2005), and easily installed Ubuntu 14.04 LTS. It worked well, apart from not resuming when I opened the lid. It was useful for tasks that are easier on a desktop computer, like remote debugging on a phone or running a local build instead of using a build server.
But most of the time I found myself using Chrome on it, effectively treating it as a Chromebook. When an attempt to upgrade to Ubuntu 14.10 bricked the device and left me unable to boot to a place where I had the experience to recover it, I’ve never gone back.
Software freedom is important. It’s the guarantee that you are free to choose your own technology solutions, rather than surrendering that choice to a vendor or government. All the same, if you care at all about software freedom (you should), every technology choice will involve a compromise.
You can spend large amounts of time and learning to make almost anything work -- on the other hand, a solution that “just works” is a great choice. Making systems “just work” can involve compromising the degree of software freedom left to you as the user. Any technology decision seems to involve optimizing on the technology utility triangle, whose three points are time expended (to keep things working), utility of the system, and optimal software freedom:
In my experience, I've been able to pick only two of these points. My preference is to optimize away from time expended and toward software freedom and utility. The more I can push toward optimal software freedom, the better. What does that mean? There are three dimensions to optimal software freedom:
- How much of the source code for the system is available? Can I (or someone working for me) build it and replace the system I am using while retaining utility?
- How frequently is the system improving? Are bugs being fixed and improvements added?
- Do I have alternatives in the ecosystem that remain viable to me? If something is wrong and stays wrong, is migration to an alternative viable?
Again, choose any two.
Every software user has to pick a set of compromises that suits them. What matters is to do so knowingly and to remain aware of the compromises so that you can continually improve.
When it comes to ideology, if you want to pick a fight, all you have to do is criticize the compromises of others. You can always do it, and almost always come away feeling the other person’s compromise is worse than yours (if you even recognize you have made a compromise – many of my critics don’t). I think it’s better to be accepting and learn from the compromises others make. Sometimes they are even right!