Now, this is a story all about how my life got flipped—turned upside down. And, I'd like to take a minute—just sit right there—to tell you how I stopped being a Macintosh user and became a Linux person.
Yeah. I know. That was pretty...fresh.
To be honest, that Fresh Prince of Bel Air reference doesn't even make sense. There is almost no thematic relationship between Will Smith's masterpiece and this tale. Plus, by the time this story really gets going, Fresh Prince already had been off the air for a year or two. But, whatever! It's too late! I'm sticking with it!
Really, Lunduke? That's how you're going to start this article?
Yes. Yes, I am, Mister Negative Pants.
Ahem.
Now, where was I? Right—my story of converting from a Macintosh user to a Linux user.
"User" really isn't even the right word. My whole world, for a time, was very Mac-centric. I developed Macintosh software. I went to Apple conventions (including the now-dead Macworld and Apple's not-yet-dead World Wide Developer Conference). Most of my computers had big, shiny Apple logos on them.
To say I was invested in the Apple ecosystem would have been a profound understatement. From 1998 through until early 2006, I was a "Mac guy".
Sure, all throughout that time, I dabbled in other operating systems—a Linux box here, an OS/2 or BeOS rig there, and a DOS/Windows machine hiding somewhere out of sight—but macOS was my jam.
I can tell you exactly where and when I became said "Mac guy". It was the summer of 1998 and the release of the original iMac, equipped with a PowerPC G3 processor clocking in at a blistering 233MHZ, a 4-gig hard drive (four gig), and a 13.something inch CRT monitor—all in that adorable little, sorta see-through, "bondi blue" case.
Steve Jobs took the stage to announce these bad-mama-jamas back in 1998, and I was instantly hooked. Maybe it was the fabled Reality Distortion Field (tm) that causes every announcement made by Jobs to appear as if handed down from the divine. Maybe it was the fact that these computers looked legitimately different from almost anything else at the time. Or, heck, maybe I was just bored with Windows (I was working at Microsoft at the time) and wanted a new toy to play with.
Who can say? Whatever the reason, I jumped into the world of the Macintosh with both feet. I didn't even bother to change into my swim trunks—just wore jeans. Mistakes probably were made.
Of course, this wasn't my first foray into Macintoshes entirely. I'd spent quite a few years tinkering with them back in my school days during the 1980s and early 1990s. But, this definitely was the first time I was going to have one of my own.
And I tell you, I was excited.
I immediately started tinkering with developing software for that Mac OS 8.1-powered beast (this was many years before the decidedly more UNIX-y Mac OS X was released). It was Pascal and C, working with the Macintosh Programmer's Workshop (MPW was the development environment most Mac developers used back then).
Fun side note: MPW actually had a built-in shell based on csh. So if you wanted a UNIX-like shell on a "classic" Macintosh, this was one way to do it. You could run only one shell process at a time, but hey, it was something!
Not long after that, I started working on Macs professionally. Specifically, I was working at Microsoft on (I kid you not) Windows Media Player for Macintosh. Yeah, that was a real thing.
Technically, I did have a Linux box at that job. It was a little Red Hat server that I used to test streaming Windows Media video files (Remember .wmv? Does anyone use that anymore?) from a web server to Windows Media Player on a Mac. But, in truth, that's about all I used that Linux machine for—as an Apache server.
During this time, I was a contractor at Microsoft—not a full-time, direct employee (a "blue badge" as they called it—contractors were designated by a lesser "orange badge"). To give you an idea of just how committed I was to the Macintosh as a computing platform, I was offered one of those "blue badge" jobs. All I had to do was go through an interview process that was more of a formality than anything (as my managers thought I was rather nifty).
Now, it was well known among everyone on the Windows Media Player team that I was one of the few "Mac People". So, during that formality of an interview, I was asked a simple question: "If you become a full-time Microsoft employee, would you ever consider working on Windows in another group?"
Of course, my response was a delightfully incorrect, "Oh, heck no! I'll be using a Macintosh thank you very much. None of that Windows nonsense for me!"
Yeah, woops. I didn't get that Microsoft blue badge.
During the years that followed, my immersion in the Apple world only intensified. I worked on Mac software at a few start-ups (on device drivers here, photo-editing software there). And eventually, I ended up back at Microsoft. This time it was with one of those fancy blue badges (I learned how to answer that one question "correctly"). I spent a few years working on Microsoft Office...for Macintosh.
During my time working on Mac software for Microsoft, I had some truly fascinating experiences.
I got to attend a few World Wide Developer Conferences (WWDC) back when it when it was sort of a small affair. I was around for the rocky transition from "Classic" Mac OS to the new Mac OS X—and for the controversies and infighting that went on during that time. It was a crazy, brutal period in the Mac developer world. Many felt that Apple was moving the Mac platform in a decidedly non-Mac way. There was much gnashing of teeth.
I had the chance to hang out at the old Apple campus (1 Infinite Loop) a bit. I even briefly talked to Jobs on a couple occasions (spoiler: he never remembered my name, and our conversations were short and, well, pointless), and I got yelled at by Avie Tevanian (the guy behind the Mach kernel and the software development bigwig at Apple back then) on a conference call. Alhough, to be fair, I think he was just grumpy and feeling a bit yell-y that particular day. Like Jobs, I'm pretty sure Tevenian never actually knew my name.
Unrelated side note: being yelled at by industry heavyweights who don't know my name (or even, necessarily, why they're yelling at me) is kind of my jam. I've been ripped a new one by Bill Gates for a project I didn't even know about, and I've been (accidentally) spit on by Steve Ballmer while he was yelling about someone else (ironically, he was yelling about Linus Torvalds, but that's another story). Technically, Steve Jobs never yelled at me—he simply was super bored to be talking to me. That, right there, is a missed opportunity to get yelled at. Ah well, que será, será.
All of this is to say that I was personally invested, rather heavily, in continuing to use a Mac. I knew the platform inside and out; I was connected to people throughout the Mac world. The Mac parts of my résumé were becoming increasingly awesome.
Which begs the question: why make a change? Why move away from a platform I was familiar with (and earning a good living working on) to something new? To Linux?
I'd like to say it was for the Freedom. That I grew tired of the closed nature of Apple and yearned for the openness of Linux. To run free in the green fields of GNU-land. But, alas, no. It wasn't that.
To be sure, as time went on, the ideals of both free software and open-source software became increasingly important to me. Back then though? That was only a tiny side note in the margins of my priority list. As much as I'd love to say I switched to Linux for ethical reasons—nope, it was purely selfish and practical ones.
Remember that brutal time I mentioned earlier—during the transition from "Classic" Mac OS to OS X? I wasn't kidding. Most of the developers that lived through that period still have the scars to prove it.
First, I had to throw out most of my old code. The new OS X had a stop-gap compatibility Application Programming Interface (called "Carbon") that contained a subset of the original Mac API. But, for the things I built, the changes were so dramatic as to render my existing code bases all but useless.
Then, after I made the transition to Mac OS X (and the new API set, dubbed "Cocoa"), the problems only increased.
With every major OS release (and some minor ones) critical functions would change in significant, application-breaking ways. Sometimes those changes were good for the operating system as a whole—just ridiculously inconvenient for me. It got so bad, and so predictable, that whenever a new OS update was about to be released, I knew I often had weeks of work ahead of me simply to get my software building and functional again.
If I wasn't quick enough—and didn't get those updates to software I worked on released before the OS update publicly was released by Apple—boy, would I hear about it from the users of my software!
It was a regular pattern. Apple releases OS update. My software gets broken. Users get mad at me. Apple refuses to help in any way at all. I work around the clock (often 80 to 100 hours per week, or more) to get things fixed. All simply to maintain the status quo and keep existing software running.
It really stunk.
Plus, if I needed changes, additions or fixes to the programming libraries shipped with Mac OS X, I was mostly out of luck.
The only time I ever had any success in getting Apple to be responsive to the bugs in its system was during my time at Microsoft. Apple was so reliant on Microsoft back then (for Office and Microsoft's financial investment in Apple), that they would have regular conference calls to talk through problems. Those calls were cantankerous—with representatives from both companies blaming the other for bugs, and often neither were willing to make changes.
Of course, if OS X had been open source, none of that would have been a problem. I simply could have made the necessary fixes myself (or worked with someone else who could)—ah, the glory of FOSS.
So, we had technical issues, huge amounts of lost code investment, an increasingly buggy platform and a company (the sole gatekeeper of fixing issues) that just wasn't responsive or helpful.
All of that pushed me to the edge of jumping ship—almost, but not quite. The final straw that broke the camel's back was the change in the community.
By around 2005/2006, the Macintosh world had changed in dramatic ways. Not just technologically (new CPU platform, new OS and so on), but the people were different. The "old guard" Mac programmers who had been keeping the platform alive (barely) since the 1980s mostly had already left. Only a select few remained—and they were grumpy now.
All the while, people were switching from Windows to Mac in droves—and the result was not unlike that of Eternal September—except for the Mac communities. Nothing against Windows users, mind you, but the impact on the existing Mac community was profound (both because of the attitudes of incoming people as well as the reactions of the existing Mac users, which was less than pleasant).
Note: Eternal September (noun) — describes the period of time, starting in September 1993, when America Online (AOL) first gave its customers access to Usenet Newsgroups. The result was untold numbers of confused, often grumpy, AOL users posting messages incorrectly, generally being rude, and otherwise quickly making Usenet almost unusable for everyone.
In response to all of this, I did what any nerd would do. I installed another operating system—in this case, Linux.
Focusing on an entirely open-source system made sense on a purely practical level. It solved the majority of the issues I had with Apple at that time (being closed down, unable to fix issues myself, no ability to influence development direction and so on) with a very low level of initial investment from me.
I began by loading most of my existing Macs with Linux—typically Fedora, which did a great job of working on most of the Mac hardware at the time (at least as well as any Linux distribution did, some hardware support was still a bit spotty).
That was early spring of 2006, if memory serves. By the end of that year, I had migrated the majority of my regular workflow to Linux—keeping around Mac OS X and Windows purely for testing purposes (I was still releasing software for both platforms, in addition to Linux).
Flash-forward to today. It's spring of 2019 (13 years later), and my workflow is now 100% Linux, top to bottom, with no Windows or Mac OS X in sight. And it is glorious. It's been that way for years.
You know what? Looking back on it, that transition was one of the best decisions (if not the best decision) I've ever made in my career. Not only did focusing on a free and open platform solve all of the issues that plagued my time as a Mac programmer, but it gave me an opportunity to help shape and influence that platform in ways I never thought possible. It connected me to like-minded nerds, across the world, with similar thoughts and priorities.
It gave me a computing home.
Nowadays, I still have a few older Macintoshes in my "man cave"—all older machines. The newest being a G4 iMac running "Classic" Mac OS 9 and a handful of much (much) older rigs. These provide me with great reminders of computing history—and my own past in computers—sitting next to my other non-Mac "retro" computing gear.
One odd quirk that this adventure has left me with is a general grumpiness when I see fellow Linux nerds at Linux conferences...using Macintoshes. I don't get grumpy at them personally. It's more of a general grumpiness at Apple—a residual cussedness at a company that caused so much difficulty for me and for so many others.
I doubt many will have walked the same weird, winding road to Linux-town that I took. And, quite frankly, I'm not sure what the take-away or moral is for this story—other than, perhaps, I wish Steve Jobs would have yelled at me, just, you know, to complete the collection.