Thursday, January 24, 2008

UNIX Model vs. Closed Source Model: A Perspective

It seems that I get the same question every time someone finds out my OS preferences: What's so wrong with Windows? Why do you prefer Open Source to finished, polished products? These are questions that I hear a lot, and I often ask myself those same questions. Why? Why am I drawn to something that takes so much effort when I want something to work now, and work well?

Well, here are my answers. Please note that these are my preferences, and not linked to anything else in particular:

Power and Flexibility
When was the last time someone told you they could get a full-blown, running OS on a 1.44 MB floppy drive? How many people do you know have three different versions of the same program, but configured for very different tasks? The idea behind the UNIX and open source community is power and flexibility. To understand this, you need to understand the basic concepts behind the UNIX platform*:
1. Write a program that can do one thing really well.
2. Expect that the output will become an input of another program, even if that program doesn't exist yet.
3. Build for quick and early application: and don't be afraid to rebuild.
4. Build tools to facilitate your work.
*Courtesy GuruLabs, Linux Fundamentals

These concepts provide for magnificent power because every program is built to it's specific task, and built well. Add a string of programs together, and you have one powerful application. Any part of that application can be updated, changed, etc. and it will still work. Also, if you don't need to use a part of the application, you can remove it entirely. You now have a model that allows you to customize your user experience without sacrificing performance. That, my friends, is true power in computing.

Looking again at the closed source model, you have programs that become bloated by trying to become all things to all people. Granted it doesn't take a genius to set it up, but you can't customize it at all without sacrificing other portions of the program, or the entire program.

Rapid Development

Because each program is separate, and the source is open, anyone can tweak it, rework it, or completely rewrite it. If there is a problem that one person misses (and quite frankly, it's going to happen, as we are all only human), then someone else can catch it and fix it on the fly. An added bonus is migration of tools and programs to unintended completely different applications. This makes related, or even unrelated, software development more rapid.

Closed source doesn't have this same rapid development scheme. How many times have closed source applications been months or years in delayed deployment? All because they are unwilling to relinquish any perceived "profits" that might be lost by opening their core code.

Utilitarian
Yes, that's right. the Open Source movement is more about utility than form. Function is the important tool. Sometimes this is incredibly frustrating (bad UI development), but generally the tools are excellent at what they do. Why? Because they keep to the four basic principles of UNIX development. You need a tool? Great, use it. You don't need it? You don't have to install it. How many closed source programs can boast that level of utility?

Education
When I worked as a computer technician, I thought I knew computers. I thought I had the OS all figured out, and could rebuild a computer in my sleep. Boy, how wrong I was. All I needed to do was try to use another OS, and I was lost. Now? I can figure out pretty much any OS because UNIX, Linux, Solaris, and Mac OS have shown me how an OS works on the inside. Compiling source gives me insight on how an OS can work. Granted, it's not Windows, but I have a feeling that Microsoft will one day slap itself silly in the face a couple of times and just develop their Windowing software for a UNIX core. Ultimately, UNIX will teach you more about how a computer works than any other OS.

My crack about Microsoft abandoning their own kernel? Well, as far as I'm concerned, it would be the only responsible thing to do considering the doom that Vista has been. UNIX is not only older and more powerful, but they would in one fell swoop make it possible to regain their market share. After all, why have a virtual machine running Windows, when you can just start another windowing program off the same machine, and get Windows that way? But I digress.

Those are my reasons for liking UNIX. Notice I didn't say anything about security, because security on a computer is easy (just don't turn it on, ^_^). I didn't mention anything about greed, hate, personal curses, or maiming of anyone in the world. No, I like UNIX because it can work anywhere, on just about any computing platform in existence. Yes, UNIX and the Open Source model allows for this flexibility. Closed Source just can't cut it.

No comments: