Friday, August 5, 2011

Loving and Hating Linux

If you are reading this, you are most likely a Linux user in some way. You are also quite likely familiar with a certain phenomena. You probably love, hate, hate loving, and love hating Linux. Why does this occur?

The first reason (and possibly primary reason) is that it is still an operating system that you are using. No operating system has ever worked on all hardware, with all software, or without bugs. This means that at some point you are going to be infuriated or at least disappointed. In my experience, Linux fowls up a lot less often than do Winders or OSX, and as such I use it. I am sure that we have all experienced Xorg issues. This happens more to me now than ever before due to Xorg trying to automagically configure itself. I am also sure that we have all had issues with ALSA at some point. My latest was an issue with HDMI audio conflicting with an onboard audio chip. It was easily solved, but annoying none the less. There are also those times when you have a dependency issue. You might have one version of a library that is required for foo, and then a different version of the same library required for bar, and for some reason the system won't allow you to have both... annoying, but it can be worked around.

The second reason I have come across is an aging directory hierarchy. We have the FHS, which is apparently useless. Why do I need /bin, /sbin, /usr/bin, /usr/local/bin, /usr/local/share/bin, ad infinitum? At one point, people likely followed some sort of convention as to where all files of a given type of file would go. You have binaries, system binaries, UNIX system resource binaries, local binaries, shared local binaries, and so on... but these days people tend to put things wherever they feel it necessary and wherever they want to at that particular moment in time. The result is that from one package to the next you have no idea where things are going to be. What's worse is that one package may have different directories of choice from one version to the next or one distribution to the next, and in some cases... well you get the idea. To solve this issue, we (as in the Linux community) have come up with insanely advanced and complicated package management solutions that keep track of which files belong to which applications.

Package management can make up the third annoyance. Most of the time, your distribution of choice will have packages suitable to the tasks you wish to undertake. You most likely chose your distribution for this reason (and if you didn't, you should have). For example, if I am using a laptop whose main purpose is to provide a mobile programming environment, I will choose a distribution that uses an advanced init system that can increase my boot time, and this distribution would need to have interactive development environments available for it along with other programming related software (compilers, interpreters, debuggers, etc...). Occasionally, your distribution will not have a package that you realize you need. This can be the source of quite a bit of frustration. Other distributions have this package, but yours does not. Those other distributions have a different package format and for that reason you cannot use their packages. This means you need to track down the source for this package. You do so, and the build fails. In the output, you find you need quite a few other packages, which also all fail to build. In the end, you decide to back up your system, format your disk, and install that other distribution which did have that package available for it. After having done this, you realize that you no longer have access to some other application. The process is completed again and again until you finally choose to use Slackware and eschew automation all together, Arch where you must eschew any stability whatsoever, or Debian where you instead eschew any modernity you ever thought of having. The brave may choose to use Gentoo or to build their own distributions, but this is often seen as an exercise in masochism and not widely condoned.

The fourth thing about Linux that isn't exactly wonderful are its zealots, antizealots, true haters, and RMS types. Much like Apple, Linux has attracted a fan base that is loyal, fanatic, and possibly dogmatic. They are zealots. For these individuals, Linux is not software. For these individuals Linux is a religion for which their zeal is unparalleled. Many of these types give Linux a bad rap in the social spheres of the sane, and often make other Linux users wish that they had chosen some other operating system (like BSD). The zealots are often identified by being rather young, having a proclivity for computer vandalization, giving Linux to people who have no idea how to use the system much less whatever other OS they had previously, and spewing FUD about all other operating systems on this wonderful planet. Where there are zealots, there must be antizealots. We have those too. Antizealots wouldn't be so bad if they did not engage the zealots in holy war across all computer-related and semi-computer-related discussion boards on the internet... but they do. Linux also has its true haters. These are usually identified by being total tools who would rather (a) use Winders, (b) use Apple products, or (c) use BSD. Linux users are generally tolerant of the BSD types, but the OSX and Winders guys are generally not welcome due to their constant tendency to try and tell all of us who have chosen to use Linux that our choice was completely wrong. The BSD guys generally just laugh and figure that we will eventually realize the virtues of a "real UNIX environment". The RMS types take the cake as the worst element in our community. They make themselves known by first telling you that Linux is really GNU/Linux (despite the majority of software in the average Linux distribution being neither GNU or FSF in origin). These people then love to tell you that you should be using a distribution that doesn't work as well, because this distribution that does not work as well is truly 100% open source software. They get bent out of shape over the usage of non-open-source firmware, drivers, codecs, or whatever. Even when the software is open source if it isn't copy lefted they will tell you that you are in some way evil, less civilized, or otherwise wrong. These are typically the same people who love Emacs when we all clearly know that Vi is much better.

The sixth and final thing that can be annoying about Linux is the fact that quite often major pieces of software change for the sake of change and more often than not the communities that surround the software in question hate the changes. GNOME3, Unity, KDE4, and Xorg are great examples of this. GNOME3 made many people irate due to its lack of customization options and event driven menus. Unity made people angry because... well... everything about it was rather counter intuitive and it often takes a good six clicks through the horrible menu system in Unity to find what you are looking for. KDE4 made people angry at first simply because half of the original functionality of KDE3 was missing. This has been corrected over time, and most people are becoming comfortable with it again. Xorg disabled ctl+alt+backspace in its default configuration and this too has made many people irate. With Xorg, there really isn't another option at the moment so people are forced to put up with the task of editing some configurations. Although, I dare say that when a good alternative to Xorg comes around, people will switch because they simply hate X. With GNOME3, KDE4, and Unity people are doing some rather bold things. They are jumping ship to other software. LXDE, XFCE, and Enlightenment have seen significant increases in popularity lately, and as long as they do not change things too much they ought to do well. Even projects like EDE and GTKShell have seen a little more recognition as the big three falter and lose their ways.

I love Linux. I hate Linux. I hate that I love Linux. I love that I hate Linux. It's interesting. At the end of the day, Linux gets the job done, and it typically gets the job done well. Linux is in its third decade, and I wish it a long and healthy life. With any luck, it will outlive me.

8 comments:

Chris Keller said...

Great piece. Engaging, amusing, and all too true. I'm not sure where I fit in your list of linux extremes but I've certainly felt the love/hate you describe. At this moment I have my kids on Ubuntu 11.04 (1 loves Unity the other asked for Gnome back) and on various machines I have Mint 11, openSUSE 11.4, Ubuntu 11.04 and the latest Slackware.

Universal Knowledge said...

I think that Unity is awesome. Also some Linux distros are not for everyone while some people may benefit a lot from simple distros like Ubuntu. While I see some disadvantages with using Linux I love Linux. It did not give me a BSOD yet...LOL

~Windre4ver~ said...

I have been using Linux for about 10 years and I wouldnt have it any other way. Good times and bad, Linux was always there, strong and stable, going the distance... getting the job done. I enjoyed the comment about Linux being treated as a religion... my computer office I refer to as my *church* :)

As what was said about every OS having its issues. Its just how it goes, bugs and tweeks. Having many distros to choose from as far as usage options and level of linux ability is a great community on its own. With Linux... community actually means something. We look out for our own peoples.

robinsrantsandraves said...

I'm a slow learner. Yet the coolest thing about Linux for me is that I can completely reinstall it in minutes if (when) I mess up that badly, and without losing my music and pictures and docs - even browser favorites and e-mail! Just try THAT with Windows.

So yeah, it's a love/hate thing, but it's still easier to fix when I break it (or it breaks itself).

JRaz said...

This was really a fun post to read. I know people in each category and it made me chuckle. I posted a link once about SliTaz getting use in Kenya. I simply thought it was cool sinve I have tried it and like it for a flash drive OS. But the ever present Winders lover and Linux hater had to pop in and comment something negative. Never fails in all the circles.

Glad to have read this today.

Ford said...

@JRaz, I am glad to have been of service! I love writing about things I love. I also love when people love reading what I write.

MLB2k11 said...

Thanks for sharing your info. I really appreciate your efforts and I will be waiting for your further write ups thanks once again.
Vee Eee Technologies

Indiana said...

You have a very good blog that the main thing a lot of interesting and useful!
Buy Anti-Depressants Drugs

Post a Comment