Some notable things that are common around here that aren't on the list are creating WCF services and sharepoint web parts, and various Microsoft stuff like that. It's a whole different world.
... and we all know that SP is made up of the traditional ASP.NET WebForms instead of ASP.NET MVC.
I'm not too familiar with the Windows web-development ecosystem but I suspect ASP.NET MVC is the minority.
- Git on Windows is (finally) not bad. You've got Git Bash, Git GUI, TortoiseGit.
- I don't see why the author thinks the CLI is vital for these:
* ssh - Putty
* scp - WinSCP
* ack, grep, find - I like IDEs, when they fit the job, but while I haven't found any suitable for web dev, most handle this task easily. I use Notepad++, which has a decent selection of plug-ins, including one to quickly find and open files in a project.
I do frequently see Windows support as an afterthought, or a non-thought, in the fast-paced world of web dev tools - code linters, compressors, languages/compilers (Coffeescript), build tools. With a decently powered workstation VirtualBox and a Linux VM help ease the pain a bit.
I hate Putty though. I use Aptana for writing my code, and quite like the built-in terminal in that for SSH. You may already have tried Aptana, but I find that I use Notepad++ only for quick jobs these days, rather than longer coding sessions, so it seems to make my life easier.
Things really are harder and it's something I've been trying to explain to people I'm mentoring and they're finding it out the hard way. The thing about that statement is that a lot of times people will start a holy war over it. No one is saying Windows sucks here. It may or may not suck but that's beside the point. The reality of the situation today is that the majority of the open source community is creating things that will eventually be running on a Linux server. IIS is just not used all that much at all outside the corporate space and even they are moving toward Red Hat these days.
But any time I explain to someone that they'd have a much easier time on a Mac or Linux distro they start an argument and give me that "you're an elitist" look. I'll tell them to use Git but they need a special program for it. I show them SSH and they need another app for that. Same for Ruby, most local dev servers, etc. and then every mundane command for me turns into twice the work for them because they have to do what I'm doing plus whatever extra steps plus configuration on their machines.
It's really frustrating for them and they give up. A lot of times a person who has learned some basic HTML and CSS who wants to level up and start doing some version control and set up a remote server ends up giving up on the whole thing.
So the whole ecosystem really is different as everything is built with a nix environment in mind. I'd been working on a Mac for a long time and needed a laptop. I got a cheap Windows laptop and thought I'd dual boot with Xubuntu so that I could deal with certain Windows file types and have an easy way to test sites in IE. Well, I ended up booting to Windows less than 10 times in 6 months and eventually got rid of it altogether because there was nothing Windows did that my Mac or Xubuntu couldn't. I even tried to write so,e desktop software and do some web dev and found that Windows is awesome for desktop apps... If you're only developing for Windows... and Windows is great for web development... if you plan to use an IIS production environment and/or you're going to program in ASP.net or C# exclusively.
But again, this isn't a Windows bashing party here. It's just the reality of working with open source and web dev in 2012. There are certainly things that make nix systems difficult to work with depending on the context but as it stands we're living in a time where *nix is the default platform for web development.
Oh, God, yes.
I teach a class of aspiring hackers on the weekends, and they're all gamers and they come in with their windows laptops. Every once in a while I'll have a piece of a lesson where they need to install some dependency or compile some code they wrote in a text file, and it just brings the lesson to a screeching hault.
Having them download a python cli so I could show them how to use python as calculator in one of our earlier lessons ended up being more trouble than it was worth.
Windows is just not developer friendly if you're working in anything but .Net - and I think C#-.Net-Visual Studio programming for windows desktop applications is the best programming experience there is. I just don't have many clients asking for that.
Simple trick I do on my windows machine is to create a bin folder and add it to the PATH settings so you can just bung things like curl and sqllite in there without faffing around.
I'm not saying it's great and windows is definitely cli hostile, but you're exaggerating the problems.
Just teach your hackers win key+r or on win 7 they can just hit the win key, type cmd, press enter. Then type irb or python, enter. Done.
Compare that with zero seconds for Mac or Linux, both which come with python installed.
You can also do this by running a third-party console app.
As a post earlier in the thread indicates, you can often do the same things on Windows but it requires a little extra work.
Last time I needed to use Windows, I installed sshd in Cygwin and used Penguinet to connect to localhost. It was that bad.
One fairly simple install gives you all the basic unix utilities, and almost anything else, yes even X11 stuff, is available in a fairly usable click-to-install management interface.
As much as I love Linux and find that I learn much more about C and computers in general by using Linux, it isn't as difficult to go back and forth as you say.
It's common for Windows ports to package their own MinGW version (Strawberry Perl, MSYS-Git, ...), which is less than awesome, but you can compile the things you need from source. It's often a bit tricky, though (I used to compile Git and Perl from source because at the time the Cygwin packages were either non-available or outdated, but it's not for the faint of heart).
As Cygwin comes with MinGW cross-compiler packages, I no longer keep a separate MinGW/MSYS environment around, and I'm reasonably happy with this setup.