Why I'm a UNIX guy

Marcus Rejås marcus@rejas.se

$Id: why_im_a_unix_guy.sgml,v 1.4 2003/01/10 16:39:04 rejas Exp $
Many of my friends and coworkers have asked me why I always work in an Unix environment. I tell them that it is because I like it better and that I'm more productive in it. They don't understand that and asks me again what I think is so much better. Somehow I just can't put my finger on what it is that I like so much. There are lots of things, actually so many that I took the time to write this article.

1. When I became a UNIX guy

I probably always been a UNIX guy. But at first I didn't know that. I used the same software that everybody else did. But I remember me writing lots of bat-files in DOS. When somebody asked me to help them install something or fix something I usually gave them a floppy with the files (yes they fitted on a floppy back then) and a bat-file. I remember me always calling the bat-file something silly, like "fart" or so. Then I just told my friend to put the disk in his machine and type "a:fart" and read and follow the instructions. As I said I didn't know back then that I was in the wrong environment.

When I first installed Unix (Linux, it was) I was as novice as anybody. Probably even more, since I hadn't even seen a running Unix system. Additionally I didn't have many friends that used computers at the time (and the ones I had, only played games) so I didn't have anyone to ask. Anyway I downloaded Slackware Linux (it took me a couple of days) and started to install it. It really went smoothly except for the fact that I didn't have a clue about all the software I was asked to, or not to, install.

Then, after some days I had a Linux system running. Of course there were no printer, network or sound and so on but I was able to log in and type "ls" (common Unix-command to list files).

As I said I didn't know what the software were during the installation. Under the installation I wrote them down. So now I started using "man" on them. Soon I did know how to use an editor and some other stuff. It took a week or so to get the printer working, and another to get my dial-up Internet connection to work.

Now my dual-boot-period started. I had one machine with a Linux installation that I thought was interesting but I didn't know how to use and a Windows installation I was tired of but (sort of) got the job done for me. The result was that I explored the Linux system and rebooted to windows each time i needed to read mail, use Usenet or do some work. This was really annoying. I tended to spend more and more time in Linux as my skills slowly increased. I moved one function at the time to Linux. I worked less and less time in Windows. Finally I just realized that I never used Windows and removed it from the computer to make more space on the drive for Linux. But before I got there there were times when I thought that Linux was i peace of crap that I would never ever learn to love. I know now that I was wrong. So I got out of my dual-boot period, why?

2. What I love about Unix

There are some things I really like. These are the simplicity, the use of scripting, the use of plain text, the availability, the robustness and some other things. I'll try to explain why.

With simplicity I mean that there are really simple to do things, yes there is a learning period, but when the basics is clear it is much simpler than the windows system I'd used before. For example to change the IP-address of the machine or use more then one IP-address this is done with one command. The shell is really powerful. How about change every instance of a string with another and rename every file from foo.htm to foo.html and print them in a nice report. Oh, and there are hundreds of then in a deep directory structure. There is no need for more than one line of commands to do this. On my windows machine this would take some time. I'm sure there's a nice application that does this for windows but in Unix I'm done before I have opened all the files in that application. This is just a made up example but if you apply that to everything you do you might get the picture.

I wrote scripts in windows too. But even more in Unix since I here could script anything. As an example I can tell about when I a while ago bought a motorcycle. I knew what model I wanted and started to search for it. I found a nice page on the net where they announced used bikes. So I started to watch it. After I watched it three times I was tired of opening that page so I wrote a small script that searched the page for my bike. I set it up so that the script sent me an e-mail when a bike of my model was visible on the page. One day my script found my bike and e-mailed a notification to me. And yes I did buy the bike. Okay, these pages usually have some sort of watch-function like mine. But the you will have to register to the site and probably receive some spam as well.

There are more reasons to use scripts. I use scripting as soon as I do something that is somewhat complex. By doing so I can repeat the task over and over again. And by writing the scripts I get the time to think and learn something. What I learn I keep in the scripts. Also I script repetitive tasks. If I do something more than once I script it, schedule it and forget it (like I did when looking fore the bike).

Plain text might sound primitive. But I will try to prove otherwise. I use plain text to everything I do (yes that's true). Plain text have many advantages. First of all its readable to everyone. No matter what tools they use. A file, even fractions of it, is readable. It's also very easy to change. I can change my documents, programs, scripts on just about every machine there is. Without installing anything. Of course I can also share my documents with anyone. But isn't plain text too primitive? No, I use mark-up languages to build reports and other fancy looking documents. This way I can work on them wherever I want and get the good things from several worlds.

Availability to me is the possibility to where ever I might be be able to log on to my computer and read my mail and work on my documents and programs just like I do when I'm at my office. I want full access to my resources exactly like when I'm at my desk. And I want this without installing things on the computer I'm at (might it be windows, Unix or whatever). And finally I'm very concerned about my security. All this is possible with my Unix system. And as I say, it is simple too.

When I say robustness I mean that the machines runs as they should and doesn't crash. I also mean that there are no need for rebooting the operating system just because I like to change the IP-address or install a new program. These issues was the thing I hated the most with my Windows 3.x system. It crashed a lot! And when I asked one of my friends, that I mentioned earlier just played games, what was wrong he answered -"Nothing is wrong, that happens, if you reboot everything will be fine". Wow, Microsoft really did a great job. How can their customers accept that?

3. Windows is improved by now

Many people have told me that since Windows 3.x that I used a lot has changed. Yes I know that. I left the Windows world at Windows 95, that was an improvement from DOS/Windows 3.11 that I had before that. After this I been away from Windows. I am now using a Windows 2000 machine at work and I must admit that it is more stable than Windows 95. But I still dislikes the system and it's abilities. It doesn't fulfill my demands described in this article in the same way as my Unix system does.

4. Unix isn't the ideal system for everyone

I'm not saying that Unix is the ideal system for everyone. There is no system that suits all. I'm sure that many people are more productive and have more fun in other environments. What I'm saying is that I'm a Unix guy and I'll probably always be ...