Why I use Linux

This is one of those things that’s always difficult to explain. The bits of Linux that I miss on other platforms are not things that you immediately see as being of particular importance. The best example of this is the freedom – why would I care that I’m free to do as I please with this software? I’ve no idea, if I’m perfectly honest. But what follows is a list of the things I miss the most when I find myself on something else (most often WinXP):

With very little in the way of limitations, I can make it look and behave how I want it to. Most obviously, I can customise the taskbars and notification areas, add monitoring icons, change colours, configure keyboard shortcuts and the like. But I can also tear out bits of the system that I don’t particularly want, optionally replacing them with options I prefer. Or just use daft keyboard mappings where every key acts as if it was three to the left or something.
The important bit is that my Linux PC works in the way I want it to. When I’m on a Windows box, I must work in the way it wants me to.

Two Clipboards
In xorg, the most prolific window server on Linux, you have two clipboards. One is the ‘normal’ one which you manually insert stuff into through <ctrl>+<c> or <ctrl>+<shift>+<del> and pasted with <ctrl>+<v> or <ctrl>+<shift>+<ins>. The other is automatically populated by highlighting text with the mouse cursor and pasted with the middle mouse click. It’s a fantastically quick way of copying and pasting.

Multiple Workspaces
If you’ve used them, you’re probably nodding in agreement, if you haven’t, it’s difficult to explain. The best way I can think of is to imagine a KVM switch, but where all the monitors you switch between are those on a multi-monitor display. If anyone’s got any better ways of explaining it, please let me know so I can stick it here.

Always On Top
I know Windows Task Manager can do it, but that’s about the only window I’ve never wanted to keep on top of the others.

Text Based
Linux is mostly text-based in its configuration, and is generally blessed with at least three sets of wonderfully powerful text processing tools (the shell, Perl and Python). This means that batch changes to configurations are really easy, as is exporting particular bits of configuration and importing them to somewhere else. Also, the fact that the shell is as powerful as the clicky interface means that pretty much anything you might want to do can be automated. Which brings me on to:

Windows in particular seems to have a bit of an aversion to automating things. I don’t know if it’s just the Windows environments I’ve found myself in, the fact that most tasks are substantially easier (if more time consuming) with a mouse than on the command line, or because the batch file setup is crap, but there seems to be something about a Windows environment that lends itself very well to the pointless replication of manual work.
Linux practically forces you to automate things. Typing commands into a shell, while easy and quick, isn’t particularly fun. And it’s so obviously easily automatable that, well, you might as well.

If I want a gopher client, I open up my repository client, search for ‘gopher client’, read the descriptions of what it shows up, download what looks best and start using it.
This software has come from the same place as the operating system, so I can trust that it is not malware, that the description is accurate and that it will be compatible with my system. It will also be upgraded when I update the system.
It’s easier, more secure, faster and more convenient than the Windows way of trawling the net and trying to work out on what basis to judge the trustworthiness of a particular application. Though if I’m that way inclined, the repository system doesn’t stop me doing that.

Hardware Compatability
Maybe I’m just unlucky, but most times I’ve installed Windows, I’ve then spent a couple of hours visiting manufacturer’s websites trying to find drivers for my hardware so I can get anything at all working. Sometimes on a fresh install I have a working network, but generally I’ve needed to find graphics, wifi, usb, audio and various chipset drivers at the very least, quite often ethernet ones, too. It’s not helped by the fact that Windows is apparently completely unaware of what hardware’s in the box until you’ve installed the correct driver for it, which makes working out which driver you need more a game of chance than a methodical process.

Modular and integrated
The unix philosophy is for software to be small, simple and have a single well-served purpose. This is generally adhered to in the free software world, mostly because it’s a pretty good approach.
For example, I have aspell installed. It’s a spellchecker and it checks spelling. It does so in my web browser, mail client, IM client and office suite. If i typed in anything else, it’d probably work there, too. This means I only ever need to add words to the dictionary once, and it’ll be considered valid everywhere. It also means that the people who develop my web browser and mail client can concentrate on developing good web browsers and mail clients, and leave the spell checking up to the people who develop spell checkers.

The Community and its support
It’s massive. Or, perhaps rather, they’re massive. And useful. I’m on a number of mailing lists and forums dedicated to sharing tips and helping people with free software. If I’m having trouble with anything Linux based, there’re three or four pools of several thousand enthusiasts who are not only likely to know or be able to find an answer, but will probably enjoy doing it. And they run across the spectra of difficulty, use cases and user stupidity.
I’ve spent a long time trying to find similar for Windows, but there appears to be a jump from free home user level support to pay-for business use support.

No Marketing Department
One fantastically huge advantage of free software is that there’s no incentive to make it popular. In contrast to commercial software where the aim to sell as many licenses as possible, the only possible aim of free software is to produce the best software possible. Any large free software project has this aim, since there is no other way to be popular.
This is brilliant, for several reasons. Firstly, the software tends to turn out pretty good. Secondly, marketing teams don’t get anywhere near it, so design and feature decisions tend to be founded in reality. There’s no 3d accelerated solitaire (to my knowledge), but there’s the above list of features. Thirdly, upgrades are non-compulsory. You’ll never have version 1.4 stop working because 1.5 is out. You might well find that security updates are no longer released and so you’re advised to upgrade, but if you *really* like 1.4 you can hire a developer to patch the security holes and develop it in the direction you want it developed.