I did a random search today. I wanted to find out what the community thought about the “Pros and Cons of Linux”, and was appalled at the amount of misinformation I found. I think the world loves to hate on Microsoft Windows, because… well.. it is made by Microsoft. I was originally simply thinking to myself that maybe there is something about linux that I can learn to like and maybe my own biases were half-baked, but the intelligence level of the average responder was extremely low and their comparisons were petty.
For whatever reason, society has deemed Apple to be “sexy”, Unix to be “cool”, and Windows is just an ugly, unusable, unstable, virus prone operating system. I felt like most of the people who hated on Windows probably hadn’t even used it for anything other than playing World of Warcraft.
The top hit that was returned by Google was a forum post on LinuxQuestions.org, clearly a biased forum full of people basically posting unsubstantiated “Microsoft Sucks” one-liners and not making me feel exactly welcomed in Unix culture. The majority of the other articles were completely shallow. It was as if my grandma were asking the questions and they were being answered by 12-year-old brats. There’s way more to consider than “hardware compatibility” and “availability of software” and “cost”, when choosing an operating system, and the subjects of “ease of use” and “stability” always prompt incredibly biased answers.
I think I’ve made a pretty persuasive arguments that Unix nerds are all full of crap. Maybe I’m jaded, and maybe I’m a bit biased myself… but I guess, so far, no one has shown me a single thing that OSX or Linux can do that Windows can’t do as well or better, with maybe one notable exception: OSX has a good audio subsystem and generally tight controls on audio drivers making it a favorite for audio creators, whereas, on Windows, there are all kinds of audio chip makers that make terrible audio drivers to 4 different standards (WDM, WASAPI, WKS, and ASIO) that lie about latency, making DAW programmers scream and break things…. but it is getting better.
So, here’s my own fair-and-balanced retaliation for those out there who love to hate on Windows.
Windows is the most productive operating system ever made… period. Windows is all about workflow, which is more than I can definitely say about OSX or Linux. Windows is the only operating system I could ever bear to manage millions of files with, and is full of all kinds of other zippy, productive bells and whistles, and just all-around thoughtfulness and care in its design.
There are lots of categories from which to measure productivity, and I couldn’t possibly cover them all. But maybe I could touch on a few areas such as the file system and file explorer, application and hardware installs, general navigation around applications, and window and task management.
Regarding file explorers (the “finder” on OSX), Windows is clearly the boss. OSX’s finder hasn’t changed much in 20 years, however, the volume of files in its file system has, making it in dire need of an upgrade. This is especially true now that OSX is based upon a Unix architecture which is full of an extreme number of files and is trying to appeal to developers who also work with 10s of thousands of small files in a typical project.
Most linux distributions do have some kind of file explorer application which typically tries pretty hard to emulate the Windows file explorer, but they are typically underused by the Unix culture, and therefore under-tested… and overall, the file explorers feel pretty “ghetto” to me. They are slow, they take a long time to refresh folder contents (windows does some clever background processing to keep things snappy) and if you choose to use the GUI tools for whatever distribution you end up using, you’ll probably find that the command line tools work better (which is extremely sad). The GUI for linux is built upon X-Windows, a technology that hasn’t changed much since 1993. X-Windows is a standard that should have been replaced 15-years ago.
On linux/unix you’ll probably find yourself writing crap on the command line, which they seem to make every effort to make as user unfriendly as possible. I sat and watched a veteran Unix guy spend 5 minutes writing the command line to copy one folder that I could have done in literally 8 seconds on Windows. If there’s something wrong with most commands, you typically just get some vague error message like “type –help for more information” or “type man somecommand for more information” . If you have any extra spaces after a “-” in the command line, or replace a capital letter with a lowercase one, you’ll likely just get this same vague error message. I know… Unix guys live and die by the command line and might argue that there are advantages, including scriptability to using the command line… however, lets not forget that Windows now has “PowerShell” in response to your love for such things, and it is designed to not suck, even though it is still young.
Furthermore, there are things that are built-in under the hood of Unix/based operating systems (which includes OSX) that are just inherently anti-productive. Having a file system that requires file specifications to match the exact caPitaliZaTion of file names is anti-productive. You can try to make some lame argument to convince me that this is the way it should be, but you’ll never win the argument on the grounds of productivity. My grandma doesn’t care if she saved her “recipes” file with a capital “R” on the front of it or not, therefore there’s no utility for having your operating system care. The operating system, the file system, and the software attached to both of them are all “tools”. What makes a better tool — one that complains about mundane details, be they technically considered user-error or not, or one that is tolerant of them?
Call me dumb and not-detail-oriented enough, or make the argument that maybe I’m just not smart enough to tolerate such tools. Say what you will about my intelligence, but I argue that smart people are only made smarter with smart tools. What could you accomplish if you actually worked with tools that didn’t suck?
Anti-productivity in Unix is pervasive throughout the entire operating system and the entire Unix culture. Built on an outdated foundation, using outdated archaic tools, archaic compilers, outdated editors, and overall outdated methods, there’s very little that is productive about Unix. What you get, as a result, is an operating system that hasn’t progressed into the 21st century, that evolves as slow as the compilers that compile it, and is built upon rickety foundations that are unstable and impractical for every day use. Yes, I called “Unix” unstable, because it simply is, and Unix nerds need to take their heads out of the clouds with respect to that argument.
I am looking forward to seeing the Cosmos operating system grow. Cosmos is the first operating system being written almost entirely in C#. C++ is outdated, and C is even more so. The future of computing is C#. Period.
Enough about why Unix isn’t productive… why do I think that Windows is more so? Well, there are lots of productive features that made Windows incredibly zippy to work with. I love the fact that virtually everything you’d ever want to do can be navigated with the keyboard without messing around with a bunch of customizations and hacks. There are times with OSX forces you to use the mouse and there’s just no way around it… now… when you come to a scenario when you need to repeat the same mouse action 400 times and there’s no hot key defined for it… you’ll be wishing you had Windows. Anything, and I mean, anything, can be navigated in Windows via the keyboard. Press and release the Alt key, and you’ll find that the main menu comes up and can be navigated with the arrow keys or by Pressing “F” for example to go to the file menu. When you find things that you need in the menu often, it becomes extremely productive to hit Alt + a couple of other keystrokes to do virtually anything you can imagine. You don’t have to go digging through the appendix of some electronic instruction manual to figure it out… it is simply there, presented to you, the proper hotkeys are always underlined and generally present. Multiply that over thousands of actions a day and you’ve probably saved yourself an hour and over years you’ll probably delay the onset of carpel tunnel syndrome. In fairness, OSX has a “repeat last command” thing, however not all commands can be repeated this way. The bottom line is I once had to apply the same set of audio filters to 400+ shots in a feature length film and there was no way to do this but with the mouse. I so wish I had a Windows machine with Adobe Premiere instead.
When opening files, Windows, unlike OSX, always filters out results that don’t apply to your particular scenario and it is really easy to tell what kind of file you have if you just look at the file extension. You can override the filter quite easily if you want, simply by changing the extension filter. I find myself going crazy in OSX when it displays all these irrelevant files in the Open dialog boxes that (typically greyed out) don’t apply to my current application at all. For example, in Unity3D, there are all these .meta files that get created along side the “real” files, and they all show up all the time in the open-window… I just want them to go away. If they can’t be opened… just don’t show them.
What’s even more maddening is when the files I want are on the network and buried dozens of folders deep on the network. In Windows, the file explorer and file-open/save windows can be operated in a hybrid old-school/new-school manner. So if you’re a beginner, it is pretty easy to click on folders and do the various tasks you want to do, but as a power user, you can quickly type things to get to the location you want to get to faster. Typing “..” + Enter will go to the parent folder in old-school, unix-y fashion. You can copy and paste paths to get where you want quickly. You can also use tab and the arrow keys to quickly flip though the files until you get to the one you need. You can take advantage of auto-completing filenames to reduce the amount of typing you have to do, and pressing “Enter” opens any highlighted file. It really is incredibly efficient compared to OSX when you break it down and is the perfect blend of mouse and/or keyboard operational efficiency and truly ideal for people who have a lot of work to do… such as myself.. and a lot of files. OSX wants you to use the mouse (or those annoying track-pads… ick). The mouse, in my opinion, is great for beginners, and a nice option to have for many tasks, but it is really inefficient for repetitive tasks. Furthermore… for an operating system that prides itself on mouse input, the mouse handing in OSX feels very inferior to me. Windows has some intelligent algorithms for improving mouse precision that are totally lacking in OSX, and the developers that I know who are accustomed to the Windows mouse acceleration feel just can’t stand OSX’s linear, unintelligent movement.
The Windows 7 start menu is great, and I don’t know why they did away with it in Windows 8. People hated the move so much that companies made millions writing apps to replace the missing start menu. But in Windows 7, pressing the start button on the screen or on the keyboard brings up a menu that you can customize with your favorite apps, or if what you want isn’t immediately in front of your eyes, you can just start typing and it will search for it. OSX has a little search tool buried in the menu bar that works in a similar manner, but it is a bit less convenient IMO.
Ease of Use
When we talk about “ease of use”, we’re generally referring to the ease at which someone who knows nothing about the system can learn to use it as opposed to how easy it is for someone who is a real power user to get around.
Windows is, in-my opinion, possibly, the easiest to use operating system on the market, and if it isn’t the clear winner, it is more-or-less in an overall photo-finish with OSX. Seriously, the OSX guys out there need to get off their high-horse and fess up that their operating system simply isn’t the easiest and most convenient any more, even for beginners. OSX is mostly stuck in the same user-interface paradigm used in MacOS in 1992. Virtually the only thing they’ve really changed about the core experience since then, is they added a task bar with the bunch of annoying icons at the bottom of the screen that bounce up and down when they want attention.
Beginners can find it incredibly confusing that an application can be open and running but have virtually no interface except for the menu bar at the top of the screen. There can be times when I want to select something from the menu only to find that the wrong application is in the foreground and I have to go find the correct app on whatever monitor and bring it to the front before I can use the menu again. Put the menu where I’m looking, please!… and I’m looking at this window over there, not the menu bar at the top of some other screen! Windows, puts the menu in the window that is being controlled… where it belongs in my opinion. On OSX, when you click the “X” on a window, it closes the window, but really… the application is probably still running as is evident by the menu bar at the top of the screen. Window management in OSX generally sucks… really, there is no window manager interface to help you flip through all the open windows on the system other than maybe Comand+Tab or that four-finger down stroke on the touchpad thing… each application kinda takes care of its own window management, which can be very poor. For example, I’m currently staring at the “Audio Midi Setup” utility that is built-into OSX. It’s window management is, wow…. terrible.
Additionally, the “+” button doesn’t really have consistent functionality either, and man… is it tiny enough? Really? And sometimes the only way to find an open window is by clicking on the “Window” menu for the app. Come on guys! You can do better than that! On Windows, basically every window shows up on the task bar and can be configured to show the name of the application and the name of the open document in the window at the same time. If you’re a power user and have lots of things open at the same time, you can devote multiple lines to the task bar or even devote an entire monitor to it if you’re really insane. I typically set it to take up two rows at the bottom of the screen and enable window titles.
When you install software on OSX, typically it requires the user to “drag” files into one (or more) folders in the finder. In Windows, you just click on an install and click the “Next” button a few times… dirt simple.
As for Linux… well.. step one: figure out what distro you’re on and whether the package you got from whoever even supports it… there are multiple competing software packaging systems, and every distribution has a completely different set of configuration tools. Installation becomes a cryptic exercise of acquiring and downloading and updating dependencies for a million different things that all have their ridiculous little “pet names” that don’t typically represent the purpose they actually serve. Have fun with that while I spend my time actually accomplishing things.
On OSX, the finder, when it goes into its vertical column mode is just hideous, IMO. On top of it all, OSX isn’t terribly responsive and can seem like it is doing nothing for long periods of time. There’s no indication of why the system is unresponsive much of time. Sometimes you get a spinny pinwheel, sometimes you don’t. Windows machines are far better at notifying the user when they need to wait… and if that fails… at least you have a hard drive light to tell you when the disk is getting slammed really hard. Whoever decided that Mac computers shouldn’t have hard drive lights, should be shot… was it Steve? We should exhume his corpse and put a few rounds into it for good measure.
Stability and Security
Don’t let the Windows haters out there fool you. Their operating systems are not more stable and secure than Windows. They are more stable than Windows 98, sure, but I’m writing this in 2013 and Windows is now entirely based on completely different technology than it was in 1998 and a completely different kernel. Lets also keep in mind that in 1998, Apple was still on their OS9 Architecture which was wayyyyyy behind the pack in terms of technology, stability, scalability, and security while Microsoft, at-least had an option based on the NT kernel… it was just that people didn’t buy it because your computer manufacturers were worried about hardware compatability…. but the option was there. You could have installed Windows NT 3.5.1 instead of Windows 3.1… NT4.0 instead of Windows95… Windows 2000 instead of Windows 98 or Windows Millennium. Once Windows XP came around, finally, Microsoft ditched the terrible options which were only there for marketing (mainly gaming) purposes.
On the other hand, OSX wasn’t released to desktops until 2001 (a server version existed in 1999) and OS9 didn’t even have preemptive multitasking capabilities. Microsoft was way head of Apple on the technology game from the beginning.
Microsoft’s biggest challenge has simply been that there’s a huge target painted on its back. Virus writers aggressively target Windows. There have been a few missteps, but Microsoft has taken the task head-on, and I have seen only one virus in the last 10 years on Windows, and I maintain many dozens of windows machines that are in use by users of many different skill levels in my organization.
Basically all hardware works on Windows. But not only that. Windows is the only operating system that seems to give a !@#$ about maintaining a reasonable level of backwards compatibility. Sure, there are exceptions to the rule, however, Windows doesn’t typically require users to go through multiple, painful operating-system upgrades just because they bought a new mouse. Windows owes a good experience to lot of business customers who use a lot of varied 3rd-party-supplied hardware and they spend a ton of money doing their darndest to not break things while advancing technology forward. The end result is an experience that doesn’t require you to spend thousands of dollars buying new hardware simply because that hardware is no longer supported by OSX 10.9.1.4.184.108.40.206.9.643.234. I have a friend who got a new iPod for Xmas. In order to sync the iPod with her Mac, she had to upgrade her iTunes. In order to upgrade her iTunes, she had to upgrade her OSX. She’s an audio engineer, so upgrading her OSX required her to also upgrade ProTools which cost her several hundred dollars. Then it turns out that the new OS and Protools combination would no longer support her pro audio gear, so she had to buy all new audio gear. I think the whole episode cost her $3000… for an iPod. How’s that for user-friendly?
With regards to Hardware on Linux… heh…. don’t even go there. It is a fundamental design issue. Some hardware vendors make valiant efforts to try and release drivers for Linux/Unix operating systems, but the DIY nature of the culture makes it basically impossible for them to support and if they ever successfully release a single driver for the OS, they’ll probably find it not worth their time to maintain the driver going forward. Installing drivers often requires having full source-code access to the kernel and all associated libraries. When you install a driver on linux, particularly an up-to-date proprietary one that comes from a company with a new product to sell, it typically requires the driver to be compiled specifically for the distribution, which they often-times leave up to YOU to accomplish. This sometimes requires changes to the compilation parameters of the kernel and a complete rebuild of the kernel itself, new “system objects”, or whatever. You’re basically lucky if you can get X-Windows to display itself in a resolution appropriate for your flat-panel screen let alone get accellerated 3D-Graphics from your graphics card. If you get Sound working in addition to video, good for you, you’re a champ. Again… I’ll focus my efforts on being productive while you sort through mundane bull!@#$.
Okay… i’ve wasted enough time on this article. Have fun out there, and don’t let popular culture make your decisions for you, make your own, for pete’s sake!