I have been surprised at the adoption of OSX by developers; it seems to have become the default choice, especially for open source savvy web developers. I find it especially odd when open source advocates tell me how they love free-as-in-freedom, but just can't give up their OSX. People frequently express surprise that I use Linux as my day-to-day operating system. I tell them that I can't work the way Steve Jobs dictates people work.
December was a bit quieter for me, so I used the opportunity to migrated to a MacBook Pro. It didn't work out. People keep asking me why, so I am writing this blog post. I apologize if I have some of the details got fuzzy over the last three months.
My four and a half year old Thinkpad W510 was showing its age, and my IT team wasn't happy with my doing out-of-warranty repairs on it. I was putting off getting a new computer due to my indecision about what to buy. I would be tied to this machine for at least three years, so I wanted next-generation hardware, but with solid Linux support, preferably from the manufacturer.
There was a brief time when it was easy to buy a Linux laptop from a major vendor, but for the past couple of years it has been nearly impossible. I really like the consumer products from ZaReason and System76, but their high-end products aren't competitive with a MacBook Pro. I used to like Thinkpad's enough to buy one with Windows and put Linux on it, but each post-IBM Thinkpad has been lower quality and Lenovo seems committed to continue the trend. Finally my employer adopted a chat client with no Linux support, so I decided that it was time to try something new. It would be nice to be free of the regular annoyances of Linux.
IT offered me a beautiful 15" MacBook Pro. It was a nice looking machine, and OSX has a reputation for being a solid and usable operating system. Given its Unix roots, I figured that I would be able to keep the best from my open source world and move to a "polished and supported OS". I admit that I was hesitant enough to make IT promise to send me a Windows machine in a month if I couldn't handle OSX.
The MacBook is a beautiful machine. The screen is fantastic. It boots very fast and has a long battery life. MagSafe power adapters are brilliant. There is a lot to admire about the machine.
OSX however is a draconian nightmare. The easiest way to describe the experience is "corporate". From the pretentious boot bong, to being forced to create an iTunes account to update the system, Apple makes clear who really owns your machine. I didn't like being forced to upgrade to Yosemite within minutes of logging in. I didn't like all the Apple bloatware that was installed and impossible to remove even though I would never use it (iTunes, Garage Band). I could hear the Apple mantra of "think different, and do what we say". I pushed forward and figured I would get used to it.
It was a struggle to configure my basic environment. First step is to get a productive keyboard and mouse.
- Switching to a left handed mouse was easy, as was changing the keyboard mapping to Dvorak. That was the end of easy.
- Swapping Capslock and Escape is very difficult in OSX. Swapping those two keys took an add-on, an education in OSX keyboard mapping, and a lot of work. And then I would switch between Dvorak and QWERTY and it would go away.
- The international character key compositions are stupid. They don't match the characters on a QWERTY keyboard, and they don't change when the keyboard gets mapped to Dvorak.
- I have a Logitech Wave keyboard and mouse that I like a lot. Without the Logitech drivers, I can't use the additional mouse buttons that are so convenient. With the Logitech drivers, the keyboard remapping doesn't work and Capslock and Escape won't swap.
Next step is to access my data.
All the computers in my house are Linux, and all the drives are EXT4. There are open source drivers to use EXT4 on OSX, but they all had warnings about data loss and recommendations to use as read-only. Since I was in the world of proprietary software, I decided to use the Paragon ExtFS for Mac OSX driver that promised "Full read and write access to Ext2/3/4 partitions under Mac OS X". The result was frequent crashing of OSX. Worse, because OSX likes to automount drives, it managed to corrupt every drive I had plugged in to the system.
The frequent reboots increased my annoyance at the startup bell. Why should I advertise to everyone around me that I am turning on my computer? But it can't be turned off. There are ways that appear to turn it off for a couple of reboots, but OSX magically undoes the settings at some point in the future. Another example of the Apple engineers signaling that they think they are smarter than me.
Next I mounted my Android phone. The Google software to mount Android on OSX works, except that OSX wants to keep the phone accessible as a drive at all times, and the software keeps popping up and getting in my way. The result is that I can't leave my phone plugged in to my computer to charge.
I then tried to figure out why my second monitor was blurry. It is an LG with 1920 x 1080 resolution. OSX did a good job at understanding that the pixel density was different on each monitor, but the fonts on the low-density monitor were not clear and would give me headaches. There appeared to be ways to fine tune the anti-aliasing in earlier versions of OSX, but they were removed in Yosemite. I tried different adapters (HDMI, DVI, VGA) and different cables. I managed to crash OSX twice unplugging and replugging the external monitor. The only advice I could find was to buy a new monitor.
Everyone acts surprised when I tell them about the crashing, but it was a regular thing. Most of the crashes could be blamed on Paragon software. The display related crashes were clearly Yosemite's fault. I'm told that some of the crashes I couldn't explain were likely related to Dropbox and Timemachine fighting. I missed the clear operating system logs I could use on Linux to figure out what went wrong.
I was discouraged, but I hadn't given up.
OSX has a reputation for wonderful 3rd party applications. After trying for a few weeks to replace my favorite Linux applications, I came to the painful conclusion that though there are far more high quality proprietary applications on OSX, there are far less high quality free ones. The OS should be labeled "In App Purchases Required".
Running open source X11 applications on Windows with Cygwin is easy, but I was naïve (see that compose key?) to think that it would be easy on OSX. There are very few open source GUI applications that run native on OSX. The IRC clients and chat clients were all immature compared to the KDE equivalents. Thunderbird works for mail, but is showing its lack of maintenance. LibreOffice works, but GnuCash wouldn't. I was warned that Fink was a mess, so I tried Homebrew only to be greeted with errors about GitHub rate-limits and an inability to run any X11 application.
All of these major problems don't even include the thousand papercuts that were killing me:
- No package manager. In 2015? Really‽ (See what an awesome compose key makes easy?).
- Finder is anemic.
- Photo viewer isn't in the same league as Gwenview.
- Terminal doesn't have the "open finder in this directory" that KDE's Dolphin provides.
- No middle-click paste, no focus-follows-mouse, no window edge flipping between virtual desktops.
I finally realized that using a Mac would require me to buy a new monitor, new keyboard, and new mouse. It would require me to put all of my data on drives that couldn't be read by any other machine in my house. I would have to buy all new proprietary applications, and re-buy them whenever the vendor held my data hostage. I would have to replace the other computers in my house with OSX to run the proprietary applications necessary to use the data that I create on my OSX machine. I would have constant headaches if I didn't dive in to the rest of the ecosystem of custom connectors, power adapters, phones, and $10,000 watches. This was not a game I was willing to play.
The bottom line is that though Apple does have an open source BSD Unix heritage, it isn't anything like open source BSD. It is its own beast with its own way of doing things, and it does not play nicely with others. I could probably figure out how to bend it to my will, but if I need to understand my operating system at that level, and deal with constant annoyances, then I might as well use Linux. I was trading my freedom and not even getting a trouble free OS in the bargain.
Though I do have to admit that many talented developers do a lot of magic with that toy OS known as OSX.
Back to Linux
My IT team graciously let me swap computers after only three weeks. The sent me a beautiful Dell M3800 which is better than the MacBook in every way I care about. It came installed with Windows, but runs Fedora great. Dell recently announced that you can buy these machines pre-loaded with Ubunutu.
I'll cover more details on using Linux on the Dell M3800 in another post. I did have one problem with the wireless card, but the Fedora kernel devs were helping me figure it out on IRC today. I certainly didn't get that kind of help on OSX.
I am relieved to be back in KDE and productive again. My Windows VM is getting more use than it used to, but I am optimistic that Microsoft open sourcing .NET will make it easier for me to use the applications I need to on Linux. I felt bad to lose so much time to being frustrated with Apple, but the experience made me far more tolerant of the problems I face as a Linux user. The grass isn't greener.