Thursday, January 11, 2007

In Defense of Open Source

So . . . I shouldn't have to be writing this, as open source has proved itself in every way that it needs to, in that the code quality is good and it is financially viable, but there are still several people out there . . . generally foolish people . . . who insist on bashing open source. I bring this up because of recent conversations I've had with friends and family about computers, where they insist on trying to bring me back into the Windows fold . . . how Microsoft manages to get such an army of evangelical end-users is beyond me, but they have.

I will start by saying that I am not really anti-microsoft, and that I do believe that Windows is the best operating system for certain things. Windows still has the highest volume of niched software, and is certainly the platform for computer gaming. It just so happens that I really don't need either niched software or the ability to play rediculous games on my computer. But if you need to use software for something that only exists for windows, or you want the best possible gaming experience and the ability to update your hardware frequently and have drivers for that hardware, than I fully respect your decision to use microsoft windows. The problem, as I see it, is that most people have one computer and this one computer is a very large expense, and when they buy it they have to make a choice of Operating Systems. When you only have one box, and you're running one operating system on that box, and that box cost you a relatively large amount of money, you are going to defend the decision you've made on that box. For me it's a little different, as I work in computers and therefore have lots of hardware at home and at work, and in my apartment I run several boxes with several operating systems . . . notably I run Ubuntu Linux, Debian Linux, OS X, and yes . . . Windows. I use whatever box and whatever OS is best for whatever I happen to be doing at that particular time, and I have an all purpose type machine, which is my Mac. And so I don't feel particularly attached to one particular operating system, and I don't feel the need to defend any of them as "The Best." To be quite frank, the idea that there is one "Best" operating system is foolish, it's like claiming that there is one "Best" program. While there may be one best program for a given task . . . for example I find OpenOffice.org 2.0 to be "The Best" word processor . . . I would hardly claim that this was "The Best" program ever, as while it's quite good at word processing, it certainly isn't a good software firewall, or a good video game or any number of other things.

Different Operating Systems are designed to excel at different things, or perhaps aren't designed this way, but rather end up being better at different things. For example . . . Windows (throughb XP) is a single user operating system, and it doesn't have robust support for multiple users on one box - notably it's permissions system isn't designed to handle this at all - whereas all of the *nix Operating Systems are designed as multiple user operating systems, and handle multiple users very well. This makes Windows better for some things, and Unix better for other things. If you're just going to have one person use a machine, and play games and etc etc, it doesn't really matter if you have more than one user. However if multiple people are going to have access to a box, multiple user support becomes very important very quickly. Likewise, because Windows has a large marketshare, the hardware vendors write windows drivers for everything, whereas there are only a handfull of vendors who write linux drivers, and so installing the hot new graphics card in a linux box results in hours and hours of frustration, and then if you can get it to work, it will only work on the same level as an older card, if it works at all.

I feel I have made my stance very clear, and so at this point I will stop making concessions to windows, and counter the frequent and ill-informed claims of the masses when it comes to saying that windows is "The Best" operating system. A good operating system needs to do a couple things: it needs to provide a manner of executing programs, support for end-users to execute these programs, and security while end-users execute these programs. So let's see how windows does compared to it's brethren in these three categories.

As far as providing access to system resources to programs goes, windows appears to be pretty good, as there are a lot of programs for windows. Yet windows crashes far more frequently than any other production quality operating system on the market, and I can't count the number of times that Windows has run out of memory or virtual memory or both on my windows box. In addition to this windows isn't very good at scheduling or allocating processing power to a program, and will often swiftly allocate large chunks of processing power to a program that doesn't really need it, this results in too frequent crashes and hard-crashes.

As far as providing support to end-users to execute programs is concerned windows, pundants claim, allows for easier installation and execution of programs than anyone else. Appologies, but this claim is completely false . . . in reverse order. As far as execution goes, the double click interface is fine and good, and common to all GUIs, but it's the inability to monitor program usage due to the single-user design of windows that is entirely absurd. If you install a program anyone can do anything to it, and there's no real way to stop it without installing some third party software on top of your existing software, like McAfee Privacy Guard. It's absurd that you have to install a third party program to get windows to do something that every Open Source operating system does by default. Next, installation . . . I can't tell you how many people claim that installing programs in windows is easy and intuitive, and that installing programs in mac and linux is counter-intuative and difficult. Well, this is also false, Scrounging the internet using a program is all fine and good, and you do it sometimes in mac and linux, but the most elegant solution i've seen yet for this is the apt software suite for Debian Linux. Apt blows anythign else out of the water, it's a simple one command solution that downloads installs and configures a program to your specific setup, it's hot. But even allowing for the internet scrounging, the wizard solution is less inuitive than mac's installation process. In mac you download the file, open the .dmg and then drag the program into the applications folder . . . done. This is far more elegant than the wizard solution that windows uses. Claiming that windows is intuitive is something that I have always found to be funny, as I first started using linux in 2000, and used it very briefly and then left it for about 3 years. In 2003 I stopped using Windows for a period of 6 months, and began using Linux again. It took me all of 6 hours to get back into linux, and this held true of mac a year later, but when I began using Windows again it took me weeks to relearn everything. The fact that I can put linux down for 3 years and then pick up essentially where I left off, shows that linux is highly intuitive, but windows is highly counter-intuitive .. . and before you say oh, well you learned on Unix so it makes more sense to you, stop yourself, because my first operating system ever was windows 3.1, and the first command line interface I learned was the MS-DOS prompt for windows 3.1, not the bash shell for *nix.

As far as the third requirement of security is concerned, well alot has been said, and I believe the stats speak for themselves. Unfortunately many of my micro-friends do not, and claim that windows gets hacked more often because of it's marketshare, and why would anyone spend the time to crack a *nix box when they control only a very small portion of the marketshare. Fair point gentlemen, but . . . *nix controls a majority marketshare in the serving market, and anyone who wants to do real damage should be hacking these machines, not windows clients. A *nix proponent buddy of mine used the following analogy . . . if it was just as easy for you to break into a bank and steal a million dollars, or to steal a dollar from one million people, what would you do? I think the answer to this is clear, and it shows the weakness of the argument made by the windows proponents.

In any case, I grow weary of the claims of windows users to their superiority, and to the idea that there is such a thing as a "Best" operating system. Can't we all just get along?

No comments: