I’m not saying they exist, just that if they do, I want to know about them.
But an in-depth, semi-neutral view of the pros and cons of each from the Linux side would be interesting. They say controversy is a matter of public disagreement, and I personally publicly disagree pretty much with any pros of such a proprietary, paid system. The bottom line would then be: why?
I’ve considered writing a post on precisely why Linux is superior to Windows, and even went so far as making a draft of one a few months ago. But apparently I deleted it. I remember it was pretty rambly and drew a lot from ESR’s paper “Cathedral and the Bazaar,” which I was reading at the time. I was trying to figure out if there were ways to fix the broken system of corporate software development–and I do have kind of an idea about that still which I might do a post on later–but then I realized that basically startups are a good answer to that question and I don’t strictly need to figure out how to fix corporate structure in order not to suffer from it professionally. But anyway.
The reasons *nixes are better are kind of everywhere. I could rattle off a bunch of them, but where would that leave us? It’d leave us in the place that every post of its kind that already exists on the Internet currently habitates, and that is: long arguments from Windows users about the failings of Linux, and heated rebuttals by hardened Unixites trying to defend their favorite system. That’s usually where it ends.
And we all know how much programmers like duplicate work.
(for the non-techies: they don’t.)
(unless they’re being paid per line of code, of course.)
So let’s start there and evaluate whether the Windows-user concerns are valid, and if they are, how far does their validity stretch?
The main benefit I can see to using Windows is its compatibility. That is to say: a lot of things are written for Windows and nothing else. It’s not that MS puts special effort into making things compatible on their side (although I’m inclined to point out that they like encouraging software and hardware not to be compatible with other things), but that Windows is the default operating system. While this doesn’t say anything great about the structure of the system itself, empirically it can be more convenient to run Windows if most of what you do is game, surf the Web, and run software that your Windows-using school or company also runs.
Windows is known as the OS you use if you’re a gamer. However, I’d point out that the overhead incurred by the operating system itself is actually not conducive to gaming.
Let’s say you have this game you want to play. It has three versions: it’s been written for Windows, Mac OS X, and Steam OS (Linux). Say you buy all three because you have all three platforms available in your house. Your Windows computer has about 8GB of RAM and your Mac and Steam computers have 4GB apiece.
That game will probably have about the same performance on each of them (at least, in my experience, although I don’t know much about Steam OS so it might be even better).
So, why use Windows for gaming? Because Windows is the typical platform games are built and marketed upon. In other words, because Windows dominates the market. Not because it’s technically superior.
Of course, our readers may have other views on that point, and I’d love to hear them (stay civil in the comments, guys). And there is a certain convenience to using something which basically means that a given program you run into is probably written for your platform. I won’t deny that.
I’m not really going to get into Mac stuff here even though it’s my OS (although someone else chose it for me–not to say I don’t approve or anything, I love my MacBook, but I won’t claim its status as some kind of ultimate option). I consider Mac stuff to be a more expensive version of Linux. Since I wasn’t the one who bought my laptop, and I tend not to buy proprietary software for myself except for a few things which have earned special exceptions, the expense part didn’t come into it for me. So, in effect, my computer runs on a *nix and I’m happy with it for what I need it to do. No, it’s not all open and I’m kinda meh about that, but it’s fine for now. (My next computer will be Debian on PC hardware, though.)
I won’t deny that there are closed-source programs written for Windows that are better than their open-source alternatives, at least under certain circumstances. For instance, I find it hard to use LibreOffice Writer because of how it handles kerning on the Mac. This isn’t a great example because it’s a special case–Writer works great under Debian and is a valid replacement for Word there–but yeah, stuff like this can happen. (And I’d point out that, had I the time and inclination, I could fix the kerning issue myself–whereas I can’t fix Microsoft Word’s bloat.) Overall, though, I think open-source is the best way to write software, and if a piece of software is given sufficient attention by open-source because enough people need it, it’s inevitable that it’ll be better quality than that produced by dispassionate Microsoft code monkeys who have no real way of knowing what their users want. (No offense, guys–it’s not your fault. There may be some great hackers working for MS as a day job, although it probably wasn’t their first choice.)
Even if you don’t want to have to fix software yourself, open-source stuff is superior because someone else will fix it a lot faster than Microsoft would. Similarly, things like security leaks and so on get patched up a lot faster under open source.
And of course, it’s often free of charge as well, although not necessarily–and if you have any money to spare, you’re strongly encouraged to leave the programmers a tip on Gittip or similar services.
I really like Linux’s software repositories and package managers. I like not downloading random stuff off the Internet and wondering if it’s coming bundled with crapware. I like being able to remove an entire program from my computer with the command line, instead of the nonsense I went through the last time I cleaned out one of my parents’ Windows computers, and ended up digging through all the weird folders in C: looking for orphaned files from programs not used in years. One of those computers now mainly runs Xubuntu, and my dad–my dad, not a tech-savvy college student–is a lot happier with it.
On Mac, I like Homebrew, the package manager that really should’ve come already on the system. It’s awesome. I wish it was more widely used.
Windows is catching up in this area: Windows 10 will include a package manager as part of PowerShell. (Note that they weren’t the ones who wrote it… they’re just including it.) I’m not sure how widely it’ll be used, though. Windows home users don’t really like the command line–if they did, they’d save their money and become Linux users. It probably won’t be widely used, because so many people are scared of the command line. I imagine this addition will make plenty of corporate sysadmins’ lives easier, though.
Maybe some Windows users could pipe up with their command-line experiences. For one, I don’t think you can natively run proper shell scripts under Windows? You have to either install another shell (like Cygwin or UWIN), or you use batch files. I’ve never written or even seen a batch file; are they as good as shell scripts? Do they provide you with a similar level of freedom to make your computer do what you want?
The closest to programming I’ve done on a Windows machine outside of Microsoft Visual Studio was writing HTML/CSS, and that’s pretty far removed from the OS itself. Browsers are basically browsers regardless of platform. I do remember my C# teacher trying to write a simple command-line Windows program in Notepad++ and run it from the command line, and my (otherwise knowledgeable and competent) teacher couldn’t get it working despite asking other people for help and trying over several days. To me, that’s a big reason to use a *nix.
I’ve done enough talking. Tell me your views!
Addition: I found a thoughtful discussion on this topic over at Quora. Here’s the link.