Why I prefer GNU/Linux to Microsoft Windows
by Sanjoy
I have a particularly nosy friend (lets call him R) who happens to storm into my room every now and then trying to convince me to give up on my sweet little GNU/Linux system and to switch back to Windows (it's true, I did use Windows once). His typical line of reasoning includes any or all of the following:
- Windows has a GUI and hence is better than a typical GNU/Linux system where all you have is a blinking cursor on a black screen where you type in stuff to make stuff happen.
- Windows has better hardware support (having to install drivers for everything other than the basic system devices apparently makes windows more flexible).
- Linux kicked my dog and stole my girlfriend (or was that Linus?).
- Photoshop, 3DS Max and Dreamweaver (he's probably right on this one ...)
- Any other arbitrary point on similar lines.
Jokes apart, R does raise an important point - Window is not as unstable as most GNU/Linux gurus tout it to be (for this discussion, 'Windows' == 'Windows NT' and not the Windows 9X shit). The latest version of Microsoft Windows, Windows 7, puts up a nice show and it is probably easier to get a root shell prompt on a typical personal GNU/Linux box (just add init=/bin/sh to the kernel command line in GRUB) than hack into an administrator account on a Windows NT based system. So why do I use GNU/Linux?
Do not get me wrong - I love GNU/Linux, to the extent of being a fan but I am try to not have the holier-than-thou image some people try to project, GNU/Linux is the most down-to-earth software I've ever seen - it should not give you wings (reminds me of this XKCD comic). Nevertheless there are essentially three reasons why I prefer GNU/Linux to Microsoft Windows
3. GNU/Linux is free (as in free speech ... well mostly). This may be a big deal to most people but I am more of a pragmatist that an idealist, GNU/Linux being free is important but not the most important thing on my list.
2. Logical structure - anyone who has carefully examined a Windows system and a *NIX system will have noticed how arbitrary most of the conventions on Microsoft Windows are while the ones on a *NIX system are logically consistent and generally well-devised. Why do I have to access my first partition at C:\? Where do all the header files go? Where is pkg-config?
1. Transparency and loose coupling - keeping the closed-sourceness of Windows aside I find the entire system, the way the components come together pretty opaque. I mean what is the registry? Sure, Googling will give an answer but adding another level of redirection has definitely made the registry system quite opaque. The same logic applies to mounting and unmounting devices - I can't do a dd if=crap.img of=/dev/sdb on Windows! Another thing I completely dislike about Windows is how everything is so tightly integrated. In the Arch Linux system I used to run (I recently switched to Debian but more on that later) I could compile and run my own kernel, install a bootloader of my choice (GRUB, LILO, GRUB2 ... whatever) and use one of the dozens of Desktop Environments that exist. Can I do the same on Windows?
I do not consider Windows evil (dumb ... maybe) but it still has its place. And why not? When we strip down all the technicalities (beyond which many 'geeks' fail to see) all that remains are opinions, opinions which are never absolute.