I run Linux.
Sorry. I mean, I run GNU/Linux. To be most specific, I run Debian. On most of my computers, anyway.
As a programmer, I find UNIX in general to be, bar none, the most comfortable environment to work in. The sheer power conferred by the UNIX philosophy of computing makes me feel horribly constrained when forced to work in other, shall we say, monopolistically endowed operating systems. For example, pipes are wonderful things:
find . -type f | xargs grep -il wazoo | xargs wc -c | sort -rn | head
What the heck is UNIX philosophy, you ask? Well, somebody else has done a much better job of compiling everything about it, so I'll just point you to The Art Of Unix Programming, in a subsection of the first chapter.
Here are my favourite parts of GNU/Linux and other related "free" software:
Vim, for text editing.
I remember when I first used vi in university. My brain just about exploded. I remember coming to a basic understanding of it - the distinction between insert mode and command mode - but I could not get used to it. I did the work that was necessary at that time, then afterwards, I tried not to think about it much.
However, it wasn't long after that painful experience that I began to teach myself to touch-type. And it was then that the value of vi dawned on me: being able to do all your editing on the keyboard itself, without having to reach for any special keys (with the unfortunate exception of that blasted Escape key). Seeing the long-term value of the end goal, I forced myself through the short-term pain of vi and learned to use it well.
At the time, I was using DOS/Win3.1 at home, so I sought out a DOS version of vi, and found Vim version 1.2. I've basically stuck with Vim since then - for over ten years - and seen it grow with countless new features that I now find to be absolutely indispensible. Now, whether the machine is UNIX or windows, one of the first pieces of software I install is Vim.
Mutt, for E-mail.
I think mutt is exactly what it advertises itself to be: the least sucky E-mail client around.
Fvwm, as my window manager.
I was introduced to fvwm at the same time I was introduced to Linux. I'd just finished university, and I was working at a start-up called Verisim. We were setting up our machines, the IT-guy and friend, Behan, said, "well, I like fvwm," so I said, "sure," and off I went.
At the time, I was amazed at the configurability of the thing. The look was a bit clunky (something I've since rectified to my satisfaction), but I could set up the mouse and keyboard to do just about anything (and I mean anything) that I wanted to. And I did. Today, I'm still amazed at fvwm's configurability.
My configuration file has gone though countless revisions, but at this point, it's stayed basically the same for years. The fvwm project seemed dead for a while, but a couple of years ago, development seemed to pick up again, to my delight.
I submitted a logo for consideration in the fvwm Logo Competition of 2003.
Mozilla, for browsing the web.
I recall trying out version 0.9 or thereabouts, when it finally appeared, and being very disappointed. It was slow and tended to crash. It also produced unsightly debug output, although I know that's not a fair criticism.
Then, somewhere around v1.2, I decided to give it another try. And I loved it. It's still rather slow, but everything else about it is wonderful. I use it everywhere.
CVS keeps my web pages organized.
Somewhere around 1998, I thought it would be really useful to have my web pages in a CVS repository. In 2003, I finally got around to doing it, and now I wonder why I let myself go without for so long.
I mean, now, I can experiment! And if I don't like the result, I just "rm ..." and "cvs update", and life is good again.