Linux is based on Unix. This answers the question I had for years, about why most developers always went with a Mac as opposed to a Windows PC. Programming languages are fairly native, if not built into, most Linux builds - such as Python.
Mac OS is a Unix based GUI, and it would explain why dropping to terminal is very much like doing so with a flavor of Linux. Bash is native and I believe PHP and Python are now native to a clean install.
Windows now offers a bash prompt, as well as Git for Windows, which is a fairly cool emulator, but it's still not the "real deal". Often, trying to install compatibility to a non-Microsoft language can present unexpected issues. For example, years ago, I would write PHP code, throw it onto a non-Windows server, and it would error out since Windows wasn't catching the errors in syntax.
Linux servers fairly dominate in the world of hosting. Mostly because they're open source, and now offer powerful and customizable systems (like a VPS) for much lower costs than a licensed Windows Server.
All three offer package managers, the most popular being Apt, Yum (Linux), Homebrew (Mac OS), and Chocolately (Windows, which now enables you to install Nano and other important bash features that can be used alongside Git for Windows and software like my personal choice, ConEmu.)
Homebrew - brew.sh
Chocolately - chocolatey.org
ConEmu - conemu.github.io
I don’t think they do. For an example, let’s see one of my previous companies.
Our front-end developer used OS/X both for her design work, and for front-end development. When we asked “why?” she said because that’s what she knows best.
One of our back-end developers used Windows. Although he had some problems with the initial setup (the production servers were Linux based), he went on, and were really productive. Again, when we asked “why?”, he said because that’s what he knows best.
Now let’s see myself. I started using Linux in 1998. It’s my primary OS since about 2005, and pretty much my only OS since 2010. I usually develop for Linux machines (ie. the target production system is Linux), so it’s easy to set up. I have all my config files backed up, so whenever I get a new machine, I can quickly apply my settings and get to work (now do that with the registry-based Windows apps). However, if you ask me “why?”, I will most probably say because that’s what I know best.
As you see, it all boils down to personal preferences. Choose a system you can be productive on, and try to stick to it. Also, choose a system on which you can quickly upgrade your tools (ie. Gentoo is out of question here), so you won’t render your workstation non-usable. This is valid for every tool you use, now just the OS. Try sticking to the same editor (whichever it may be), the same shell (if you use the command line a lot), the same browser (your we app should have automated tests running in every targeted browser anyway), and so on. Despite that, don’t be afraid to try now things every now and then (that’s how I started using Emacs instead of ViM, but that’s another story), or you will be stuck with the same stack forever.
Do they? ;) Depends what you are talking about.
I think most web developers use the CLI as a core part of their job, which means that yes they are using a *nix environment. Bash is the standard tooling option as it's an infinitely extensible interface for dev tools.
Mario Giambanco
Director of User Experience Development