I still don't understand this idea that Linux somehow has something that Windows doesn't when it comes to development. I develop in multiple languages and have never found the need to use Linux or found Windows lacking in any way so it would be interesting to hear what you think Linux brings to the table that Windows does not as surely a good developer should just be using what they feel most comfortable with?
As developing using Python, I have found many packages have weird issues working with windows. WSL is great, However, takes some extra step to get into (start ssh server, tell pycharm to use wsl python as the default one)
windows sucks away lots of resources and it have many background services that keep my laptop busy (security center cannot be disabled, cannot switch to manual updates, etc).
With many Linux distros you can have more control over your workstation and more resorces available.
I can only see this as a problem if your machine isn't up for the task in the first place. Again, I've never had any issues with Windows.
Well, yeah, if you are filthy rich and can afford a filthy powerful machine, then you can even use a virtualized MacOS xD.
Jokes apart, you are right, but in my case I have to do very different types of work on my machine: python development, nodejs, frontend, spin up virtual machines, use containers, etc, so I always felt I need as many resources as possible from my laptop. For instance, I think disk usage is an issue with windows. I'm developing a xamarin app, and visualstudio+xamarin take gigas and gigas of disk space (it's not the OS, though, maybe I am a little OT :). Ever felt this way?
You can disable those by booting windows in safe mode
I actually never tried that. I always though that you have to use safe mode when something screwed up your pc. It is usable? Have any downsides?
See my post below about coming from a Unix background...
For me, until Windows 10 introduced WSL, it was not a place I could get my work done in a way that I found productive. I use a visual code editor (vscode) when doing much of my actual coding but for the other times, I am editing configs, running scripts, testing out code in REPLs, doing package management, using git... Etc. For all those things I immediately turn to the command line. Vi is magic for quickly editing a conf file. Bash/zsh are great for simple but powerful scripting. Yum/apt/etc are great for quickly getting software on your machine. Node or python or Elixir are great to test ideas out in their interactive modes on the cli. Cli is the fastest and, in my opinion, easiest way to use git. It's all made powerful by a great terminal and great shell. I find Windows lacking in both... until wsl came along.
I don't mean any disrespect but the point is that you will never contemplate the *nix way if you don't try it seriously. The only problem there is with Linux, in my opinion, is that starting is hard. I was lucky to have a lot of friends that help me go through the first steps of learning.
It's not a problem with starting with Linux. I'm fluent in using Linux from having to learn it at University but the point here is after using both Windows and Linux I fail to find any issues with just using Windows. It just seems everyone seems to be using Linux to develop on because it is seen as 'trendy' rather than actually being more productive.
I can't talk for others, but provisioning tools such as SaltStack, the POSIX terminal (that I'm sorry, Powershell is a long way off) and the ease of use of SSH (in both ways), all of that combined with the fact that the majority of servers on the Internet are running Linux (and the place I worked and my VPS provider does too) and the cost of Microsoft license is the reason why I prefer Linux over Windows. Furthermore, I've always hated the Windows Filesystem. I can't count the number of time I had ACL issues on Windows, sometimes I needed to use third-party super-user plugin to force a folder to be read-write for everyone (like an upload folder for instance).
I'm not a stubborn person, and I can admit that VisualStudio is probably the best IDE, after trying IntelliJ, Eclipse, Netbeans and XCode. SQL Server is a real good SGBD for the price to pay (compare to IBM DB2 or Oracle Database 12i). The real problem is the licensing: so complicated for nothing. SQL Server can be bought per number of people connecting, or per core processor. You are forced to buy Windows Enterprise or higher.
Lastly, Linux can run efficiently on older, less powerful computer compare to Windows. Running a dozen websites on a Windows server costing 4k might not be to the reach of small enterprise. It may be more efficient to buy 3, less powerful computers, to run with a load balancing, a fail-over system that cost the same price running Linux. The money you spend on licenses (that can easily cost in the thousands) can be invested in training. To be fair, it is easier to find professional for windows compare to Linux.
You can't run docker container natively hence the missing unix namespaces. I'd image some performance bottlenecks/higher cpu & ram load since your docker engine runs in a vm.
well if you work in some enterprise companies, you have very limited windows with slow security scans, or.. linux :D
My last windows development experience is a bit dated and many things happended - especially WSL happendend. So what I have to tell is cum grano salis. My last experience is from late 2014/early 2015.
I was a Java developer - no problem here. But what made me go away was, that I was a) accustomed to a linux shell (cygwin is no help) and b) part of my toolchain - e.g. git - needed a minimal unixy environment done with MSYS. And the really awkward part started, when you whad severeal MSYS environments on your machine which interfered with one another (+ your cygwin environment) and required you to carefully rewrite the sequence in the $PATH (what should trump what) so to say.
So doing Java everything was fine. But doing additionally scripting in ruby and having somewhere a perl in your cygwin could make your life harder.
My conclusion is:
developing C# in windows with Visual Studio (Professional) works like a breeze and has everything to offer, to develop for windows
developing Java is nice under windows and linux as well. I experienced no differences
using something like ruby (or e.g. python had some known bugs on windows and who cares for that?) in combination with other *nix-centric ecosystems made my life harder as it should be
From my experience, *nix systems were per se developer centric - you could fix your own system, if you leave apple out in this point - and offer a rich integration, which microsoft for years neglected.
Only the last years, they are going to reconquer developer's hearts with WSL.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.