This following is an excerpt of an email response I sent to my dad, after he mentioned he was reading an article comparing the costs of Linux vs. Windows.
Those articles really do get old quickly; for me, at least, cost is a minor factor in deciding one or the other. The general design of and community around unix/linux is a much stronger motivator for me.
You can be much more creative with unix; one isn’t reduced to pointing and clicking everything; that is terrible way to go if you want to do anything powerful, automated, or unplanned. With a screen/mouse-oriented interface, you have to have a button, checkbox, or menu for every action the user is allowed to make; because of this, the user is limited in what he/she can do.
With the design style of unix, which is centered around a programmable command-line interface, plain text files, and a reusable toolbox of simple programs, one can achieve almost anything one can think of easily, especially those things which are unforeseen.
A good example of such an unplanned action I wanted to perform recently was my monthly mail backup system. I get a lot of mail (about 1000 pieces of non-spam a day, and 200 pieces of spam). Each month, I rotate my mail folders so that they don’t get too large and slow (e.g., I archive the month). Some folders, on the other hand, I wipe every month, because they are just mailing lists, and hence are archived somewhere on the net. Furthermore, since mail is extremely valuable, I also keep backups on a remote site.
Until just a couple days ago, I had somewhat manually done these procedures each month. However, this took me some time to do manually (maybe 20 mins), and it was tedious and boring. Some months I didn’t even do the backups. However, in just about half an hour a couple days ago, I was able to write a small program to do all this in an automated fashion. Because it now requires practically no effort each month on my part, I can be assured that I’ll have my backups, which gives me piece of mind.
No product is written for the custom needs I have, but I can write my own solutions quickly, tying together existing unix tools. In my opinion, that’s the benefit of programmers writing for programmers; it turns out things like unix, a great infrastructure and toolbox. It’s reinvestment in developers, enhanced through liberal licensing schemes such as Free Software and Open Source. It’s what makes it great to be a computer geek.
The other corner is Windows, Macintosh, KDE, Gnome, and other mouse-driven interfaces, which, while great for an end-user who doesn’t do too much or isn’t demanding, don’t lend themselves to letting the user be creative or highly productive. The user is constrained by the selection of things he/she can click on.