When comparing GNU/Linux vs Windows, the Slant community recommends GNU/Linux for most people. In the question“What is the best operating system for a developer?” GNU/Linux is ranked 1st while Windows is ranked 9th.
Ranked in these QuestionsQuestion Ranking
Pro Access to really powerful terminals
Pro Lots of development tools available
Pro Most likely also your deployment target
Makes testing while developing easier. According to a September 2014 study by W3 Techs, *nix based servers are used on over 2/3 of websites.
Pro Most software is open source
Pro Package managers
You can install any library or package that you need (gcc, php, node) with just a couple of commands in the terminal.
Pro Large percentage of Linux users are developers
Pro Most Linux distributions are free
Pro A wide variety of distributions available
With a lot of variety, one can use the distribution that fits the type of work best because of the many choices that are given, instead of just one.
Pro Follows the UNIX philosophy
The UNIX philosophy: 'Write programs that do one thing and do it well'. Since Linux itself follows this philosophy then it's very easy to start creating scripts and programs.
Pro Familiarity with Linux is often required from a developer
Many university computer science programs are based on Linux and in any case, you will inevitably be dealing with a Linux box of one flavor or another someday, be it a server (most likely) or a workstation. The languages and methods used in the Linux/Unix environment (e.g., bash, C, C++, Make, etc.) are very commonplace among developers and are to the computer side of the discipline what the English language is to the human side of it: the common language.
Nice, developer-friendly environment.
GNU/Linux handles desktop sessions differently than Windows. Users may customize their own sessions; in fact, a single user may use different desktop environments for different login sessions.
Pro Choose any type of desktop environment (or none)
Most Linux distributions support a range of desktop environments, be it plain old X, a tiling window manager or a fully fledged mammoth desktop like GNOME or KDE.
Pro Works great on older hardware
7-10-year-old Dell laptops can run Unix or Unix-like OSes very well, where Windows would grind/drag/vomit.
Pro No telemetry, unlike Windows
Pro Hardly ever crashes
And if it does you can often drop into console and fix the error before returning to desktop.
Pro Lower chance of data loss
Linux has very few viruses. So there's almost no chance of getting infected by a virus and thus losing your data including your important programming files.
Pro Extremely fast
Can be made even faster by going GUI-free or using a lightweight window manager.
Pro Sometimes it "just works"
Sometimes Linux tends to just work with little to no effort or troubleshooting required. Most of the times it doesn't, though.
Pro Best driver support of any OS
No other OS comes close to supporting as much hardware as Windows 10 does. Because it's the most popular OS, the bulk of hardware manufacturers support Windows first, and all other operating systems second.
Pro The most solid choice for .NET development
Pro Widely used
Windows is the most-used desktop OS in the world.
Pro Windows comes first
Windows is the most used platform in the world. If you build something and need a third-party software it will most likely run on Windows. Not because it's good, but because everyone uses it.
Pro Free access to great development IDE in Visual Studio Community
Pro Ubuntu bash shell
Windows has a binary compatible Ubuntu shell to run non-Windows apps natively.
Pro Touch screen support
You still can't get touch support on a Mac. Windows has had touch for 5+ years now.
Pro Best support for Visual Basic
Pro Free with most new computers
At least the non-Apple variety at any rate.
Con Issues with drivers if your hardware is not officially supported
Con Maintenance can be time-consuming
Con Steep learning curve
Con Too much customization
To get features on par with OS X, you need to research packages, install them and configure them. Even then, it may not be as good as OS X.
Con HiDPI support sucks
Many developers work on apps that should work on HiDPI monitors. In most distros, HiDPI simply suck on Linux, and making that work is a nightmare.
Con A wide variety of distributions available
With a lot of variety, one cannot deploy to a single system and has to prepare for a bundle of distributions, instead of just one.
Con Less and worse professional software is developed, due to the low user base
Depending on what type of work you are doing, you may find Linux software lacking compared to their Win/Mac counterparts.
For example in game development, tools, like Unreal Engine or Unity, usually lack in quality or novelty compared with Windows. Having crashes or bugs that aren't fixed for a while.
Con Low user base to develop to
Linux can develop to any system with the right tools. Mono allows development to Windows. Python and Ruby too. C and C++ can be developed to Windows.
Con Weak default terminal
The standard terminal lacks basic features that Linux and OSX has. Alternatives to the default terminal for Window can be found here.
Con Uses more resources than most alternatives
Con Most software is closed source, including the operating system itself
Con Lacks package management
It is not easy to install/keep current development packages that developers need and use.
Con Limited in its flexibility
Window managers, startup systems, and system components cannot be changed.
Con Scanning for viruses makes builds slow
Compiling a project means reading and writing a lot of files. Even fast anti-virus software slows down the build time (which is almost always too long).
Con Maintenance is time-consuming
Previous versions needed to be formatted ever 6 months to maintain performance.
Con Unstable and slow
Windows crashes often and is much slower than alternatives, especially at file IO, which is important for developers.
Con There are some privacy issues
By definition, it's spyware. Pre-compromised OS.
Con Update policy / scheduling is a nightmare
Pop-up to update your system that will restart it if you don't interact quick enough and will have to be in reboot mode, which can freeze your activity until the update is done.
Con Embarrassing to give talks
On conferences or in user groups the audience laugh at speakers presenting their talk on a Windows machine.