I actually work on a Windows 8 machine for most of my day, but all my actual development happens on a Fedora machine on my LAN, which I work with via Samba and SSH. The advantage of this setup is that it means that I can also work from my Chromebooks trivially - just SSH into my dev machine and hack via vim. I have a Macbook that I work on sometimes, but I frequently just end up doing the same thing there - connect to my dev machine via Samba and SSH, do my work, don't worry about the Apple tools tripping me up and getting in my way.
OS X is probably the nicest (prettiest?) shell available, but the OS as a whole is a pain in the ass from a development standpoint compared to the Linux alternatives. The shell also has its own little quirks - you end up using the mouse a lot more on an OS X machine than you do on a Windows or Linux machine, which slows me down.
I think that $YOUR_FAVORITE_DESKTOP_ENVIRONMENT works just fine as long as you are running all your actual code on a Linux machine or VM somewhere.
Since you end up relying on a third-party package system, and the OS itself makes no guarantees about the availability or compatibility of the development tools you need, upgrades become dangerous and unpredictable.
As for advantages...I dunno. Netflix, Photoshop (sorry, GIMP fans, Photoshop is still unmatched) and battery life? Linux power management is pretty horrid compared to OS X. However, basically the only time I care about that is when I'm on an airplane and won't be able to get to a plug for 4 hours, which is like...a half dozen times per year.
My only other beef is that there's no rc.d system and OS X's startup stuff is messy, but I do that so rarely that it doesn't usually come up.
The other major advantage for me is Xcode. I did not get-it until Xcode 4, but these days I really miss when I'm not using it. (I do mobile and web development on the JVM, but I write games on the side.) I've yet to find a C++ IDE that's as nice as Xcode, and that's including MSVC with Visual Assist X.
Also, I haven't found serious issues with upgrades since moving to Homebrew from MacPorts. Your mileage may certainly vary, but I've upgraded the same Mac from 10.6 to 10.9 without any issues. I can't say the same for my Ubuntu system, but that may have been my fault. =)
The lack of an rc.d system is another sore point for me - I can't ever remember the correct invocation to restart this or that service. Having to look it up each time is annoying.
I haven't used XCode significantly (I tend to stick to Sublime and IDEA's Java/Ruby IDEs), but I've heard great things about it from iOS developers.
Heck, IDEA looking and feeling great on OS X was the reason I originally bought a Mac.
Have you already looked at launched. I've heard a lot of praise from people who've used it. http://en.wikipedia.org/wiki/Launchd
There is also the EXCELLENT http://brew.sh package manager for OS X.
And yeah, once you get a hang of tiling window managers everything else just looks silly.
The main advantage of wmii to me is that I can always get to my destination window with a single keystroke. I don't have to grab the mouse and I don't have to shift my focus to the window switching process itself like it happens when you Alt-Tab in Windows / OSX. I switch between windows a lot so it was a major annoyance when I used to work on Windows. Maybe for someone with a different work style it would be a lot less important.
Most of the time I have one maximized window per "virtual desktop" so there's really no competing for attention issue. But when I do use multiple ones (e.g. for multiple IM clients) I really enjoy the fact that I don't have to do the layout manually (using mouse, again).
Finally, it might be silly, but I just realized that "imperfect" windows layout (where there is unused space between windows) bothers the hell out of me. OSX is particularly bad in this regard (and I've noticed other people bothered by this as well).
I hear you on the OSX "space waste" thing. Windows has the awesome Win+Up/Win+(Left/Right)/Win+Shift+(Left/Right) shortcuts that I dearly miss when I'm on OS X - being able to move windows around and maximize/restore them with the keyboard is fantastic.
I also kinda missed the (true) window maximize button, but then again there's RightZoom which does it.
Personally I've also got PCKeyboardHack [2] and KeyRemap4Macbook [3] setup to disable capslock and remap it to a 'hyper' key (command+option+control+shift) so that I can assign my own key combos without having to conflict with other software.
[1] https://github.com/jigish/slate
[2] https://pqrs.org/macosx/keyremap4macbook/pckeyboardhack.html...
Yeah, if you sweat for a couple of days you can turn your OSX (and even Windows) into some remote resemblance of a linux. But what good parts do you have left after that?
yum is a very capable package manager, and Redhat's distros have been very well supported for a very long time. The flexibility of having both Fedora (bleeding edge, you'll probably cut yourself, but can always get the latest goodies) and CentOS (LTS, you know it's going to work properly) is really nice, too.
As long as you conform to standards, webdev is easy.
Why? Mostly inertia - I've been using Mac OS daily since System 7 days, and I've never chosen to spend the time becoming familiar enough with any particular Linux distro (or Windows) to become familiar/comfortable for the rest of my day-to-day work - I like my text editor (BBEdit) and my other toolsuite much of which is OSX only. I'm happy enough in vi from a command line when needed, but I'm not as productive or efficient there. There's a little bit of liking the hardware too - I still like my (~3 year old) MacBookPro - it's a _really_ nicely made piece of kit - far nicer than most other brand laptops I see around. (I have little doubt that there are nicely engineered and designed Windows/Linux laptops, but most of them I bump into are plasticy or boxy or flimsy-feeling.) I do have a Toshiba Notebook and a non-name wintel box with Ubuntu12 under my desk, but it's a 27" iMac and a 13" MacBoo Pro that I spend all my time in front of.
A mix of a productive low-cognitive-overhead environment, and transparent remote operation makes the GNU/Linux and OpenBSD worlds a no-brainer for me.
Also, people keep talking about using different platforms for different things, but I find that tiring. I don't know how you guys can spend your time flopping between all sorts of thinking modes rather than standardizing your experience(I have much the same lack of understanding for the reasons why people would have multiple desktop environments, or multiple editors to go between).
My main argument against OSX is that while it may be decent on a mac, there's an entire world of other hardware and circumstance, not to mention the differences between your production environment and your knowledge of your development machine, why not put the same thing on everything? I have a PPC eMac, an entry-level 2010 laptop, and a couple of lenovo desktops sitting around, they all run exactly the same thing with synchronized configurations, I don't know how I would do without this.
I have an ansible playbook which I use to make sure that my different machines (1 work box running Precise, 1 home box running Saucy, 1 laptop running Precise) are all running the same applications (everything from xchat to vim configs is controller by ansible). Gvim + grep/ag/sed/tmux is all I need for full-stack development. Postgres/Redis/JVM all running on the same machine, as well as Vagrant and an always open connection to our VPN. It's pretty nice, I can't complain. With vim plugins and the ability to nREPL into my apps, I've yet to miss an IDE once. Keep a personal Wiki for notes and everything interesting in vimwiki. Full support for all the other apps that provide creature comforts such as Skype, Spotify, KeePass, VLC. Quite like GIMP for basic photo editing, plenty of video editing/conversion command line tools like imagemagick and ffmpeg. Audacity for audio. LibreOffice has always worked fine for me, but I'm not an Office poweruser.
Due to time constraints I recently have pretty much stopped playing videogames, which was the last reason for me to keep a copy of Windows around. With Steam pushing hard for Ubuntu gaming, my OS should be more viable in the coming years there as well.
Don't really see a good reason to ever move to OSX besides maybe sexy hardware (yes you can run Linux on Macs, but I keep reading about the awful driver support). I strongly support the philosophies and vision behind the free and open source software movements and want to exist in that ecosystem as much as possible. I'll gladly deal with the infrequent hassles to show my support and alignment. Occasionally WiFi/Video/Printer/Projection support is spotty at best, but I'll figure something out. Worst case scenario I'll borrow my cofounders Macbook for keynote presentations :)
I've been trying to do the same but far from complete and gets easily outdated.
Work env setup playbooks sharing could could become dotfiles sharing on steroids :)
I used to use Photoshop and run my main dev setup in a VM so I could use it, but eventually I just used it less and less.
I'll agree Gimp isn't the best piece of software ever usability wise, though single window mode went a long way. But honestly I end up using Inkscape way more since it's so much easier to align boxes in layouts for mockups and create CSS-like effects, which is what I end up doing a lot.
I get Photoshop for Lightroom/really graphics heavy stuff, but as a webdev I find I either need to make simple vector graphic stuff that Inkscape works wonderfully for, or I just need to chop up stuff that someone else already created as a raster somehow, neither of which really make Photoshop a necessity.
Now the main piece of software I like that doesn't run on Linux is Sequel Pro. I really really wish that it had a Linux version.
As for what I use, I always do my development work in Linux, whether VM or regular install. Getting stuff to work on Mac can be a headache (you absolutely need homebrew, and most of the time it works alright, but compared to just using Linux it's not always convenient, especially when you want to use a piece of software that's never really been built to work with Macs), and it's generally impossible on Windows. These days my desktop distro is Mint, though I stick with LTS based.
On OS X I get the best out of Linux (Unix based) and Windows (Runs photoshop and office, no problems with drivers and firmware).
Awesome quality of Mac Apps is another benefit. Photoshop and not having to use open office. I can't find equivalent alternative of Alfred for Linux. Adium works better than Pidgin. 1Password seem to be the best password manager. There are native apps for music apps like Spotify and Rdio, what gives me a benefit of controlling them using built in hardware keys. I love fantastical.
Main selling point of Linux used to be tiling window manager and package distribution. Amethyst - OS X port of Xmonad is quite good and I am using it at the moment - https://github.com/ianyh/Amethyst . Brew is getting much better than it used to be and I don't remember a recent situation when I had problem with it.
Finding help online for your system is another benefit. Linux have many fragmented distributions and things very often do not work between them. On OS X if you find a solution online it will work. There's bigger market share (even among devs) so it's more likely you will find your solution online.
For laptops, the hardware/integration plays into it - historically, Linux/PCs haven't been able to match form factor, build, battery life, trackpad, and just workingness for suspend etc... but mostly it's that OS X provides the most flexible/painless work configuration for me.
Working in the command line works like you'd expect (I use the same configs/dotfiles (w/ some switches) between OS X and Linux). I use MacPorts for package management (which provides sane Python and most everything else I need), and anywhere that fails I can run a VM or just SSH to a box. iTerm is a great terminal, and I use ClipMenu, which is a great clipboard manager. Quicksilver means I rarely need to touch the mouse when I'm typing. The only thing I wish was better is workspace/window management, but I admittedly have never spent enough time on it (I use Moom, but one of these days I'll get serious w/ Zephyros or something...)
Day to day, I very heavily use Evernote and 1Password, which might have Linux equivalents, but would require some work to switch. More importantly though is that OS X gives me access to Photoshop, Lightroom, and OmniGraffle which I wouldn't really want to be without. I'm rarely in XCode these days, but it's still useful for knocking out the occasional iOS/OS X code I deal with as well.
Basically, OS X gives me a very comfortable environment (I've used Windows and other *Nixes for years in the past), and the best of both worlds for design and dev software.
My desktop runs OS X and I use it mainly for my visual tools. Anything having to do with image manipulation, all my browsers, and a variety of other tools run just as well, better, or exclusively on OS X. Some examples: Pixelmator, Illustrator, xScope, ImageOptim, Dash, LiveReload, MacVim etc. There's lots more software and many more reasons, but that's the gist of it.
My (non-javascript) code all runs on Ubuntu, though, and I've got a Vagrant VM running any time I'm doing dev work. I used to run my dev environment in OS X but that was a huge pain in the ass because it's so extremely inefficient in so many ways. Since switching to Vagrant & VirtualBox (& Chef, but I'm looking to switch away from that) I haven't looked back, even for solo or weekend projects.
I do use Windows, but only occasionally and grudgingly so I wouldn't count it in this case. I make sure the sites I build work in IE and that's pretty much it.
It's always a bit painful when you run into a site that just looks bad on Windows, and it's obvious that it was an all-Mac team that didn't bother to cross-platform test.
Personally, I like Windows, but developing Rails on Windows isn't ideal so for Rails stuff, I use Ubuntu (sometimes OSX). Node and PHP I've always done in Windows.
Another vote for the OSX + VirtualBox/Linux combo on a MacbookAir here. Gives all the shininess of OSX, battery time of MBA, with the (package managed) flexibility of a Linux system. It's also seamless and transpartent when you mount your project folders, and run it headless with local port forwaring (ssh/http/...).
Also, if you need to do something crazy, you can just clone the VM, muck about, and then throw it away again.
Multi workspaces, allows minimal distraction for UI, Sublime Text 2, Chrome.... love it. Been using Linux since 2006 and wouldn't switch to anything, though I recently bought a MBA and that has been converting me slowly - what a great portable machine.
Apple has a serious design VS usability problem with their keyboard and I seriously don't understand how people get used to it. And the unique menu bar.
Also, a windows box for testing is a must have since it's the most popular OS => no need for slow browserstack or vms.
What keyboard usability problems are you referring to? Compared to Windows, I quite like using the Command key instead of the Control key for most keyboard shortcuts (thumb instead of pinky).
but for normal development I use Gentoo linux which I've customised to look like NeXTSTEP because I liked NeXTSTEP.
Ultimately, I find I'm more productive in a Windows environment, and that's what counts for me.