From 1996 until 2002 I primarily worked in Unix environments. Mostly Solaris but also AIX and Linux. There are a lot of things to be said about the Unix world; great text utilities (grep, PERL, sed, awk, etc..), a very powerful command line environment (bash, ksh). When Java came along things started to improve on the UI front; NetBeans (now eclipse) was a world of improvement over e-macs or vi/vim.
One oddity was that even when the production/deployment environment was a flavor of Unix, almost all of the development was done on Windows. One company standardized on what was then called Visual Age for Java (from IBM). Visual Age was an amazing UI - loaded with tons of productivity enhancing features, a first class object browser, a first class forms designer, etc... It even had rudimentary support for drag and drop programming via graphical components (JavaBeans) that represented basic programming constructs (loops, conditionals).
After finishing grad school (2006) I made a conscious decision to try to find employment in a Windows development shop. Most of my work during grad school was done in C++ using Visual Studio and I had grown to like the level of integration I found in Visual Studio. C# was gaining greater acceptance and, coming from Java, I was naturally attracted to it. Over the years, a few things have stood out to me regarding Unix vs Windows development.
- Visual Studio is one of the best IDEs around.
- The database tools in Visual Studio make it possible to do round trip development entirely within the IDE. Stored procedure debugger, Server Explorer, Database Design view all greatly reduce the amount of work involved in building database-centric apps.
- Documentation in the Microsoft world is incredibly robust. Beyond syntax the documentation often includes tons of sample code and examples. Sometimes a short code sample is much better at illustrating a simple concept than pages of well-formed BNF. Don't get me wrong, syntax is important but I've come to appreciate the additional code that I find, in one place, in MSDN.