I was a UNIX diehard; before Windows was ever really usable for anything I got a shell account on a Cray running UNICOS, and then later my high school got a DECstation running Ultrix. In college I definitely preferred the AIX and SunOS boxes compared to the Windows ones. I primarily ran Linux (Yggdrasil, then Slackware, then Debian) on my home systems. I always loved the configurability, the consistency, the power, and the programmer-friendliness of it all.
When I was in grad school I had a laptop running Debian. At the time, getting Linux running on laptops was a dicey proposition. I spent many, many hours figuring out all of the tweaks for getting it to work, which was device-specific and painful and often involved hacking on kernel modules to do anything useful, and even then I never got a lot of things working quite right (such as WiFi, which was just starting to become widely available), and it was frustrating to have to deal with USB device enumeration issues (especially since at the time XFree86 - this was WAY before X.org - had no hotplug support, and most Linux distributions still used generated device inodes instead of devfs).
The laptop got stolen.
A few months earlier, OSX 10.1 had come out, and I was vaguely curious in it, because here was a UNIX distribution written by the same people supporting the hardware it was supposed to run on, and I figured, hey, at least it'll be easier to get working, right?
I got an iBook (lended to me by the university), installed 10.1 and XDarwin on it, and was a happy camper with a decent BSD-based UNIX on a laptop that Just Worked, and since it had XDarwin I could still do everything I would have normally done on Linux (as long as I didn't need the GPU, as XDarwin had no OpenGL support at the time).
There were certain things that never quite worked right, though; Mozilla/X11 (this was before it was even named "Phoenix," much less "Firefox") was pretty bad, so I usually ended up running the Mac version of IE or Opera instead. And I found that Mail.app was a lot easier to deal with than sshing to my shell account and running mutt there, as was my usual approach. And slowly I started using more and more OSX apps and fewer and fewer X11 apps.
When it was time to give the iBook back to the university, I realized that I hadn't even booted my high-end Linux workstation in months, and I... didn't want to go back to that.
So I bought a used PowerMac G4, and I've been pretty much a full-time Mac user ever since, at least at home. Even at work I'll try to work on a Mac whenever I can, and if that's not an option, will do Xubuntu (the least-bad of the Linux distributions IMO) as my distant second choice, and if I have to do Windows I'll rather run it Windows under virtualbox or Parallels or even a remote desktop rather than running Windows directly if I can get away with it. (Sadly, that's not always an option.) But if I have to run Windows on the metal for some reason, I usually just mount its filesystem remotely from a Mac, do all my editing over the network, and only use the Windows box to actually run the build tools and so on.
Of course, most of the time I'm either in Terminal or Sublime Text (which has only very recently replaced Emacs for me, which I always found more useful for programming than the One True Editor, vi). I mean, I do have my limits.
----------
So far I'm loving OS X. I just don't understand why Apple still hasn't created a Direct X competitor. I wish I didn't have to buy a Windows license to play a game once in a while.
Ostensibly, that's what Metal is intended to be. Personally I'm looking forward to wide support for OpenGL 4.5's Direct State Access, though, as it gives you most of the advantages without losing cross-platform capabilities (not that it matters all that much since most games are written against middleware like Unity or Unreal these days anyway).