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.
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!
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!
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
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).
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).
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
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
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.
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.