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!
No comments:
Post a Comment