Kroon Information Systems
Rant: Why Open Source

Why I use OpenSource software

This question has been asked to me so many times now, I almost feel as if I'm going to explode if this gets asked to me again. Well, this document is an attempt at explaining why.

  • Choice:
    KDE/Gnome/IceWM, which window manager will I use today. Konqueror, Opera, Galeon, Mozilla, FireFox, Lynx, which browser will I use today? As you can probably see by now, I've got choice, I can decide what browser I like best, and use that. Personally, I'm a mozilla fan. I also use IceWM. Then there is the choice of terminals (aterm/xterm/eterm/konsole), all with their own unique interface, I've recently switched from xterm to aterm. Choice is probably one of the most fundamental things in Linux, you use whatever suits your needs. Don't get me started on text editors, with vim, emacs, kate and scite being the ones I see most used in the labs (vim not so much, but since that is what I'm using I can't really leave it out).
    Comparing this to a Microsoft environment where Microsoft decides for you that Internet Explorer is the best browser around, you should be using some virus incubator like Outlook or Outlook Express. As for editors? Yes, scite runs on it, but other than that there is basically notepad!
  • Interoperability:
    Brave statement. How about being able to import Microsoft Office documents? Well, look at it this way, can Microsoft Office import anything other than Microsoft Office documents? Really? How about loading an OpenOffice document? How about loading StarOffice documents? How about opening HTML pages, without messing up the HTML? What about SYLK? I'm tired of this crap, it's not Linux that is not compliant, we can at least read NTFS at this point in time, can Microsoft say the same about ext2? ext3? reiserfs? xfs? jfs? nfs? Didn't think so. Oh btw, according to some you are not guaranteed that Microsoft Word documents will look the same on two different systems, if you look at it this way then the importing done by OpenOffice can really not be considered as bad, yes, it breaks here and there, but really - who can blame anyone for a few problems when they are in fact importing proprietary formats!
  • Standards:
    Which brings me to standards. Have you ever encountered a site that says something like "best viewed in Internet Explorer 6.0"? Sure sign of an incompetent developer. At this point I usually close my tab and go somewhere else. Standards are there for a reason, to make interoperability possible. Most open source programs are much more standards compliant than anything I ever saw coming from Redmond. Take the browser situation again ...
  • Stability:
    Many people can argue this, but none of my windows machines have ever withstood more than a day of torture (meaning running simulations on it with heavy disk IO as well as some serious computations running at the same time using multiple threads). Under normal usage it would probably stay up for two days, max. My linux machine currently has an uptime of 7 days. I probably average around two weeks, at which point I usually reboot becaus I'm installing a new kernel. I've seen linux servers with uptimes of almost 450 days. I've seen workstations (where people don't bother with upgrading the kernel) with uptimes of 80 days (In my area power failures are not uncommon).
  • Security:
    Don't even get me started. In one week there probably gets released more virii, worms, trojans and other malicious things for windows than there was ever released for Linux in it's entire existance! That is bad. True, if 95 % of users was using Linux then virus writers would probably target Linux more, but I can tell you this much - it's going to be much harder to write a virus for any other operating system other than Windows. Some argues that there has been more hacks in the last year against Linux servers than Windows servers, did you bother to also check the number of Linux servers to Windows servers? Did you bother to check how the hacks was pulled off? I'm not too clued up with the stats myself but I'm almost willing to bet money on it that the hacks on the Linux machines are more due to misconfigurations and bad coding practices (on stuff such as web portals) than to actual bugs in the software being used. I know of excactly one remote exploit for apache whilst there are several for IIS (in both cases if your machine is patched and up to date this is not a problem). In the same breath, what are you going to do if you've hacked a Windows server? ping the guy next door to death? I can think of several things to do with a hacked linux server - none of them good for the person being attacked! Then there was the bug in Internet Explorer that allowed some arbitrary person to masquarade as another server (and launch a man-in-the-middle attack) in spite of SSL certicates (it didn't properly check the entire chain, as long as the root signee was a trusted CA it was fine, another certicate down the chain didn't have to have the CA:true flag set) and Microsoft marked it as low priority since it would be difficult to exploit - as if DNS spoofing/poisoning is impossible to do. Wonder whether they actually fixed this one yet - last time I checked it was idle for about a year and a half iirc. I can dig up many more of these examples. I'm not aware of two vulnerabilities in open source software that took longer than 24 hours to fix once it became known that there was a problem! There was one in OpenSSH that turned out to be a configuration problem that took 3 days (it was a valid but uncommon configuration that allowed a remote root exploit - it was announced that there was a problem but due to the severity of the problem details was not announced until after the problem has been fixed).
  • Speed:
    Yes, as always, speed is an issue. If I wanted my machine P700 machine to be slower than my Pentium90 machine, I would install Windows XP on it. Even though it has over 700MB of RAM vs the 64MB of the pentium, the pentium with Linux on is likely to outperform it (arguable). Linux just kicks but, with a O(1) scheduler, a pre-emting kernel (which apparantly reduces performance according to some people), some proper IO scheduling and other nice features it is simply pure speed. I can now run simulations in the background and by simply nicing it a little I don't even feel it whilst using other graphical apps. Note that I don't mean applications neccesarily run faster, it is just that task switching and responsiveness in general are so good that even under heavy load I barely notice the difference (The exception is with serious disk usage - but that is a hardware bottleneck, end of story).
  • User friendliness:
    Bah, you can never get to being as user friendly as windows. Well, that depends on what you consider user-friendly. I personally like hacking config files using vim. I like being able to log in on another machine on the other side of the earth and being able to actually use that system without having to wait for the mouse to move everytime I want to start an application (I watched a person use VNC the other day, and timed the time taken to start a service at just about 5 minutes!). I also don't consider having to enter a thousand entries into some program that I have in text format in a file one by one user friendly. Wielding sed, awk, grep, head, tail, sort and a few others in these situations are not only faster, it is less error-prone and in my opinion much easier.
    And then you go to "normal" end users. Well, if you want an Outlook interface, we'll give you Evolution. If you want Internet Explorer, sorry, there is just simply no browser available that is as braindead as that in the opensource community. Even links and/or lynx is more usefull!
    In Thailand the goverment had a pc's for all type project, when Microsoft refused to lower prices for the project, they opted to go with Linux, obviously there were those that heard that Windows was better and pirated it, but it turned out that those that stuck with Linux not only learned quicker, but achieved a much higher level of computer literacy.
    There is a user where I live now that recently installed Linux for the first time after Microsoft gave him bullshit just one too many times. He managed to install it himself, maintain and add packages and even change some really nifty configuration settings to suit his excact needs, without consulting with me in most cases. He even managed to solve some KDE related problems out of the box without any interference from other people. Most Windows users would simply turn around and run. Not only did he manage to install packages and so forth, he also didn't need anything so far not supplied with the distribution! Thus, everything most people would ever need on three cd's! When I still used Windows I think I went through about 10 CD's just to get my base installation off the ground! That is before installing any usefull software such as word processors, development environments or any such.
  • Better development tools:
    This is probably arguable, most developers either love or hate Microsoft Visual Basic - I'm of the latter kind. I also happen to like barebones development environments (I'm using vim right now). Well, from the previous you could probably gather that I use vim for most of my editing (word processing has it's place, and OpenOffice is sufficient). I like being in control, and huge IDE's is intimidating and rather restrictive in my opinion, I don't even use qtdesigner when building qt apps (I should probably take a proper look at it at some point).
    Anyway, I mentioned better development tools, with that, I don't only mean IDE's, I also refer to compilers and other tools, such as make and autoconf. I also reffer to API's that are available to me, take for example MySQL, OpenSSL, Qt and don't forget the pthreads library. Given, some, if not all of these are portable to Microsoft Windows, but it is much easier to use them under Linux (or some other unix like operating system such as FreeBSD).
    There is also eclipse, which in itself runs on top of Java (platform independant) which integrates support various programming platforms (Java and C/C++ being the main ones), as well as some build tools (ant and make) and even for CVS.
  • Cost:
    I'm not willing to pay for crap software, so I don't use crap software. I probably wouldn't use it if I get paid to. Nuff said.