Tuesday, May 31, 2011

A Tool for Every Job

I was recently reading The Heart of Linux (by Dominic Humphries), which is a blog post by another author. It made me think of the same thing in a different way. The point being posed in that article was simple. It was essentially that the command line interface is more powerful than other interfaces, and that window managers were often better than desktop environments. This is the typical "less is more" thought that drives many Linux/UNIX types. My point is a little different.

There is a proper tool for any given task. If I am browsing the web, I will almost always prefer to have a graphical environment (although given that netsurf can do some js, and most css without X... I have been slowly changing my opinion). This is also true of those times that I need to do some word processing. Those two tasks are well served by the WYSIWYG nature of a GUI. On the other hand, I prefer to work with text and audio through bash. I even prefer to watch movies and view pictures without X11. It isn't that I find X11 inherently awful (which I do), but I prefer the command line due to my efficiency with it. I find all of that fussing around with a mouse to be a deduction in my productivity. When I am using my Macintosh, I prefer to have a Terminal window open, and I use shiftit to manage my windows. I also use the Vimperator plugin in Firefox to keep myself free of the mouse. When in Linux, I much prefer something like EvilWM, xmonad, or ion to something like GNOME, KDE, or XFCE. Those environment aren't without their polish and ease of use, but they aren't my bag of tricks.

In the case of wood and nails, we use hammers. In the case of digging holes, we use shovels. In the case of massive file operations, we use scripting languages. In the case of photo manipulation and 3d rendering, we use large-scale, graphical, software applications. In the case of software development, we typically use text editors and some form of revision control... both of which have no reason to be graphical. So, as it stands, what do you see yourself needing? Do you do photo manipulation, 3d rendering, or word processing? In those cases, you may need a GUI. If you do not do those things, you could most likely go without... until you want to wash a flash video anyway.

For me, switching to Linux was a matter of preference. I had been using BSD. My father bought me a Windows PC, and I hated Windows. I did a little research and stumbled upon Slackware. It's been a love affair ever since. For me, Slackware was a system to explore. I learned everything I could. When I felt that I had learned quite a bit about what was already there, my attention turned to what I could make it do that it currently could not do. This brought me to scripting, and eventually to programming. I have to agree with Dominic Humphries that it's an amazing thing to be able to sit down at a machine with text files and a compiler, and make the machine do almost anything you wish. I will also agree that while Linux may not be the absolute best operating system ever created, it is undoubtedly in the running, and better than that it's free in ways that OSX and Windows are not. The key is that Linux liberates us.


Post a Comment