Bit Cannon

Finding an Alternative to Mac OS X

This is the first in a series on finding a replacement for Mac OS X.


I have used Mac OS X since the public beta and use it at both home and work. I've also run various Linux distributions and BSDs since around 2000, so am quite familiar with them.

In April 2016, dissatisfied by the lack of MacBook Pro updates (and performance of Ruby) I had a custom PC built for work. It has a fast Intel CPU (4Ghz i7-6700K), plenty of RAM and fast SSD storage. It runs Arch Linux and I have been doing all my development at work on this machine over ssh via iTerm using its amazing tmux integration since.

I tried a couple of times to use this machine as my sole work computer but kept coming back to the Mac + tmux option. The first option I tried was an i3 based desktop. However whilst I liked the idea of tiling window managers I decided they weren't for me. Next I built an OpenBox desktop but the lack of a complete, integrated desktop where all the parts work together frustrated me.

I deeply value the consistency, versatility, reliability and integration of Mac OS X and the excellent quality hardware it runs on. However the current state of the Mac has me considering whether it's still the right platform for me.

Appeal of Switching

I've spent a fair bit of time pondering the appeal of switching. These are some of benefits I see:

  • Access to regularly updated, pro hardware.
  • Not restricted to Apple hardware that makes choices that I don't value, such as:
    • Removing the Esc key.
    • Removing all legacy ports necessitating the use of dongles for everything.
    • Prioritising thinness and weight over everything else.
  • Access to hardware that Apple doesn't make, such as 2-in-1 laptops.
  • Getting comfortable with an alternative before I'm forced to.
  • The ability to inspect and contribute to the OS I use.
  • Using an OS where developers are first-class citizens.

Drawbacks of Switching

Of course even if I make the switch there are a number of possible drawbacks, including but not limited to:

  • The time required to find replacements for all the software I use.
  • The lack of equally high standard replacements for software such as:
  • The lack of access to the iOS SDK (I maintain an app).
  • Scriptability of applications (AppleScript) to solve problems the developers haven't considered.
    • Although I suppose there's a counter argument to this that I have access to the source code so I can just change it.
  • Sunk cost of software I've bought.

Evaluating Alternatives

At the end of November motivated by the lacklustre MacBook Pro updates I installed a bunch of different OSes to see if I could find one that met my requirements. These are what I tried:

Honorary mentions:

  • deepin -- Kind of felt out of the target market so skipped it.
  • Haiku -- So much promise but just can't quite seem to get the momentum to be a viable option.
  • Redox -- Still far too new but certainly one to keep an eye on.

Note that I don't currently consider Windows a viable alternative. For the work that I do (Rails) and tools I use something *nix based is the best choice for me.

What I'm Looking For

Running each one I was looking for these attributes:

  • An integrated, consistent experience.
  • Opinions and thoughtfulness:
    • One tool for each job.
    • A sensible/minimal selection of pre-installed applications.
  • Design:
    • Simple, easy to use/understand interface
    • Visually appealing and consistent
    • HiDPI (2x) support
  • Timely updates

Top Picks

After evaluating each I was left with a top 3. Interestingly all are using, or are based on GNOME.


Fedora desktop

Fedora provided an excellent experience. I installed Fedora 25 just after its release. It's built on the latest tech like Wayland and GNOME 3.22. It would be an excellent choice if it weren't for a couple niggling, admittedly mostly unfounded reservations:

  • It feels less community oriented with the Red Hat association.
  • I've never been a huge fan of yum (now dnf). Years ago when I last used an RPM based distribution it was slow. A trait I put down to being written in Python compared to the C/C++ of dpkg/apt. I tend to prefer tools built in native languages over scripting languages.


Arch Linux running GNOME

Arch was a sneaky addition after I liked Fedora. I figured the experience provided by Fedora was mostly GNOME and I already use and like Arch so why not try installing GNOME on it. Guided by the excellent as always Arch wiki I installed the gnome and gnome-extra groups, which produced an equally pleasant experience as Fedora.

elementary OS

elementary desktop

elementary OS is stunning and definitely my favourite. It won't appeal to everyone but their philosophies and direction really resonate with me. Specifically they have:

I particularly like this from a recent blog post on myths about elementary:

“elementary OS is for noobs or dumbs down their apps”

I think this stems from the idea that features require complexity. It’s a cultural belief in poor design. But we think that clear, easy-to-use apps are good for both new users and pros. Usability is for everyone and truly usable apps help, not hinder. Keyboard navigation is an example of something that is a priority both for pro users and users with special accessibility needs. An interface works best when it is transparent and empowers users to get things done.

This is a team that values the same things I do. The interface is clean and refined. The pre-installed application selection is minimal and each one feels like a perfect piece of the system.

The main drawback of elementary to me is that it's built on top of Ubuntu LTS. As time goes on all the packages get further from the current versions published upstream. I'd much rather a regular release like Fedora (6 months) or a rolling release like Arch.

Closing Thoughts

My ideal would be elementary built on top of FreeBSD. I feel like we need the diversity of having viable options besides Windows, Linux and OS X. Maybe I should work out what it would take to bring that to life…

Anyway, next I plan to resize the Arch partition on my work PC and install elementary alongside. I'll aim to do all my work duties on just that machine. I'll be posting on how that goes. Subscribe to the feed or follow me on Twitter for updates. If you enjoyed this post consider supporting me on GitHub Sponsors.

This is part 1 in a series. Read Part 2