Assuming you have a production environment, and that said environment is running a full OS. Not everyone is a web or mobile developer.
In my first position, where I was the EE, the software development was done with a combination of an emulator, a VAX build system[1], and live hardware via JTAG.
In my second position I was doing signal processing algorithm R&D, so there was no production system at all.
In my third position I was implementing stuff from the second position and other sources. Our software was (supposedly) platform-agnostic, so we did our development in RHEL and ran on various platforms with various flavors of Linux. There we had examples of real hardware, but had not constructed a full-example production system when I left. All the Linux installs on target hardware were heavily stripped down and configured for real-time operation, though, so we couldn't actually do development on them.
Now I'm doing a combination of R&D, packaged software, and bespoke software for NLP where our customers can run (theoretically) on whatever systems they want. I develop in Ubuntu LTS and test occasionally in a Windows 7 VM. Our customers so far run our software on various flavors of Windows, RHEL, or Ubuntu VMs that we package for them. We don't really have a defined "production system".
[1] This was in 1993, well before I came along
But my Mac has a decent terminal.
OSX has a decent terminal. Windows has not.
Windows does suffer from short-comings but do not tell me OS X or Linux do not.
I work with some talented C# developers but I'm always thinking in the back of my mind : "what compels you to only develop for windows?".
The same way you do on a mac! You are using a virtual machine to mimic your production environment, right?
I have Win8 desktop and MBPr laptop and develop on both about 70/30. Brew is nice and all (tho has made me howl in frustration numerous times) but I want stuff running on the exact same software as what I deploy.
Between work and pleasure I use a mix of PHP, Ruby, Java, Node, and Python (well and Haskell.. hello coworker! /wave). Not that I actively develop in all of those but will use other programs written in them and sometimes modify the source. CLI on mac is better than cygwin on PC, but I have had hiccups with both getting the right packages/libraries installed. OSX is far from the holy land imo.
I never have a hair pulling event on Ubuntu installing things, sadly I am too frustrated with the NON-CLI parts of Ubuntu to make it my primary OS.
I have all of those languages installed "natively" (ie not through cygwin) on Windows so linting works in Intellij. For SPAs I can use bower,grunt,gulp,livereload etc in cygwin just as easily as OSX. I've not tried installing Haskell on windows, I run that in my VM exclusively.
Right now my biggest gripe is Ansible is a b to get working in windows, but it can work. Hopefully the "run ansible on host" PR gets merged soon into Vagrant.