I've done extensive development on Windows, Ubuntu, and Mac, and they're all piles of shit. All of them.
Windows
Lack of a native Unix terminal for generating keys, SSH'ing and many other features is a huge deal breaker. You can get almost anything to work, but it's a lot of effort.
However, as an OS goes, Windows (7) wins hands down.
Also, Windows hardware is terrible. If you're deving on a PC, fine. But laptops? Pffff. Macbook Pro simply is king. Anything else with similar specs will come at similar cost, but won't have anywhere near the fit, finish, polish, and attention to detail as a Macbook Pro.
Ubuntu/Debian
Best terminal environment to do development on. Apt-get kicks Brew's ass in terms of consistency and simplicity. Shit installed through Brew seems to be totally scatterbrained.
But as an OS? It's awful. Memory leaks all over the place, frequent crashes, can't run Photoshop easily, and multi-monitor support is wonky at best.
Ubuntu on Laptops is also a game of Russian Roulette - better pray that the laptop's hardware has proper driver support in Ubuntu or you're going to be doing a lot of searching/compiling.
Mac
Ok terminal environment. Needs Brew, which isn't ideal. Also have to remember to manually do things like make mysql automatically start when the computer is rebooted. But it's a Unix shell, so there should be no problem doing anything you need from command line.
As an OS though? Awful. The simplest thing - window management - is a pain in the ass. Maybe it's 20+ years of Windows conventions, but OSX's window management is very unintuitive. Close and minimize are the same thing in Yosemite.
Maximize completely clobbers everything else on the screen, requiring you to slosh through desktops to get to windows or constantly flick through Expose. Move your mouse near the top of the screen to click something, and you might accidentally trigger the menu bar to drop down and cover the thing that you wanted to click on.
Also, if I have a maximized window on my 3rd monitor, but then go over to my Laptop's monitor and open up the Settings panel there, it will switch desktops on my 3rd monitor even though the window opens up on a totally different monitor/desktop. When I close settings, I have to go back to my 3rd monitor and manually swipe back to the desktop that contains the full screen window.
WAY too many battery sucking animations for maximizing and sliding and switching between desktops.
Multimonitor works ok, except for when I accidentally reconnect my monitors in the wrong order without the correct number of desktops available on each, and Mac just totally re-arranges which monitors my applications open on. I normally have code on my middle monitor, and browser on my right monitor. 80% of the time, it's correct. The other 20% of the time, Sublime will open on my laptop's monitor instead of the middle monitor, and I have to manually re-assign it.
Double clicking the menu bar ALSO minimizes the window, even though we already have two small pips to do that already. Why not pseudo-maximize like Windows? (patents/licensing? Pony up Apple, you're worth $150 billion....).
Snap to screen edge requires a 3rd party application to be installed. I always distrustful of the need to install 3rd party stuff. Sometimes they cause really obscure bugs and overall, decrease the stability of your system.
Scroll wheel direction and trackpad scrolling are linked together, even though the setting appears to be separately defined. I like the "Natural Direction" for the trackpad when I'm using just the laptop, but when I plug a mouse in, I like the scroll wheel to use the normal reverse direction, because of 20+ years of that ingrained behavior that I don't feel like changing. Again, splitting those two things requires that I install another 3rd party program to do so.
I own two iPads and have owned iPhones since the 3G, and I love them. But the only thing I love about my Macbook Pro is the hardware itself, OSX sucks except for its Unix shell, and even then, I would prefer a Debian flavored shell.
So give me:
Macbook Pro, with Windows 7 as the OS, and a Debian terminal/shell, and I'll be happy as a pig in shit.