2011-08-21

For the love of Linux...

I have been reading a few other blogs and news articles lately regarding the state of the Linux Desktop, and even got into a discussion on Google+ that touched on a few points.  Let's take a look at some of the usual talking points:


  • Hardware support on Linux is behind Windows and Mac OSX
  • Gaming
  • Office Apps, LibreOffice/OpenOffice are just not there yet
  • Windows Apps/.exe support sucks (Wine issues)
  • Nobody likes the command line (Nobody likes to type)
  • No GUI tools for system management (Always have to default back to a terminal)
  • Graphics Hardware Support SUX!
I'll briefly talk about each point, please understand this is coming from someone who grew up using UNIX, Minix, the BSDs, and Linux.  So I'm biased.

Hardware support:

This one requires a bit of a history lesson to get to the actual meat of, but nobody wants history outside of high school except historians, so this is what I have to say:

Hardware manufacturers, due to many reasons, don't feel that Linux is profitable enough for them to spend the time (and ultimately, money) on building drivers.  Mac OSX hardware support is great, if you buy Mac hardware (speaking specifically if you purchase Mac peripherals).  Also, keep in mind this, Linux hardware support is mostly provided by the community.  There is nobody sitting back in dev-land on the Linux side getting paid to build these drivers (if there are, they are few and far between and not being paid nearly enough).  That said, hardware support is actually pretty damn decent on Linux.  Barring a few small issues, I can run 4 ATI Radeon HD6970s on multiple displays and have a damn usable desktop experience.  I use the proprietary drivers from ATI because of a few performance issues and the ability to control my fan/pump speeds via command line.  If video cards and obscure wifi cards are the only things that Linux needs to catch up on, we're doing DAMN good! Even Windows requires you to download a driver for my video cards, and obscure wifi cards usually have a CD-ROM with their driver software on it, so why would you expect that in Linux it's automagically recognized?

Gaming:

I laugh at this point as I watch my wife play WoW in Wine under Arch Linux and I'm ripping people apart with my daughter playing Xonotic in a LAN game.  Gaming should really be renamed "Windows Games" because let's face it, that's what people want.  To this I say, check WineHQ to see what the support is like for your game because until that game developer learns to use opengl and writes a Linux client installer, you're SOL.  OR you could go out looking for games that are native to Linux that fall within the genre you are looking for.  If you're an FPS nut, checkout Xonotic, RedEclipse, Enemy Territory, Urban Terror, and many others.  RTS? Wesnoth, Savage2.  MMORPG? Planeshift, is damn good and Second Life is even supported on Linux.  The point is, it's not impossible, you just have to look around.  A lot of times it's just a matter of a few files being edited and you're in the clear.  For some games however, you just can't win.  For that you need to ask if swapping your OS out is worth playing that game.  Gotta love choices.

Office Apps:

LibreOffice is the big dog so far as office suites go.  If you need something like MS Project, check out GanttProject in google.  If all you need is a spreadsheet program, a document writer, and a power point type app, then LibreOffice is just fine and even supports running Office 2010 file extensions.

Windows App (Wine) support:

I'm going to be very clear, I'm not trying to be offensive but: THE PROGRAM WAS DESIGNED FOR A WHOLE OTHER OS! WHAT DO YOU EXPECT?  That's like me complaining that I can't install a .deb or .rpm on a Windows machine.  ONLY Linux offers you at least the CHANCE to have something work on your system or provides comparable alternatives FOR FREE.  I know that Apple has their own version of software that attempts to allow cross-compatibility, but let's be honest, it works no better than Wine and it's got Apple backing it up with tons of cash.

Nobody Likes the CLI:

Really? Last I checked there were quite a few users who did.  In fact, Windows still has good old CMD.exe and Windows PowerShell (ever try to fix the BOOTMGR missing error with a GUI?), Mac OSX has a terminal (it's in there, trust me) and so does every other OS that's more obscure than Linux.  I don't much like clicking all over the place, so half the time, I don't even pick up the mouse unless I'm playing a game (I use the Awesome Window Manager, so EVERYTHING is bound to keys).  To people who don't like to type, I say this: stop lying.  You're the same person who spends hours typing up BS and other garbage on Twitter and Facebook all day, and probably writes chain mail and sends them in email all over the interwebz.  You love to type, so what does it matter if in order to fix a little hiccup you need to crack open a terminal and show someone the output of "lspci" or "cat /etc/fstab" ?  The argument against the CLI is moot.

No GUI tools for system management:

Um, "systemsettings" in KDE would like to have a word with you, as would gparted, KPartitionManager, System Monitor, Gedit, Dolphin, Nautilus, Metacity (RIP), PCManFM, Thunar, Synaptic, Magneto/Sulfur, PortHole, etc.  I'll give you a hint, the reason why Linux users default to using a terminal for critical system tasks, is because it's easier to tell a Windows user who is trying out Linux to enter in ONE command that will fix everything, than it is to guide them through clicking on a GUI.  Let's be honest, most Windows users don't even know how to adjust basic system settings in the Windows GUI that they are "comfortable" with and now you want a Linux user to guide you through a GUI that you have no concept of? Get real!

Graphics hardware support:

I touched on this a little bit already in another section, but it's worth noting again: Graphics support is getting better everyday.  I use Sabayon Linux and Arch Linux on a daily basis, I use the testing branches of each, almost daily there are updates that I test out having something to do with making 3D hardware support better. These people don't get paid to do this stuff, they are working in their spare time on these projects and the open source drivers are pretty damn good!

Now that I've berated you through all of those common points (hopefully you don't feel too beat up), let's move on to the one thing that NOBODY likes to talk about: Package Management.

If you're a Windows user, then you have no concept of this, even though you do it manually almost every day. In a nutshell, package management is installing and uninstalling software programs.  On Windows you go to some site, download a .exe (or unzip a .exe), double-click it, click "Next" until you get to a "Finish" button, go to your start menu, hover over "All Programs", find your app, click on it, and enjoy life.  Guess what, you just did in a multitude of steps what a Linux user does in 3.  In Linux it's: open terminal, enter package manager install command (equo install in Sabayon Linux), type in the name of the package/program once the install is finished.  BAM!  Done.  No muss, no fuss.  Quick and to the point.

So why is this an issue? There are A METRIC F**K-TON of Linux distros out there (mostly *buntu based, but that's for another article).  Guess what, each distro has its own version/way of managing packages.  Let's go through a small list:

Debian/*buntu based: .deb
apt-get install foo
dpkg -stuff foo

Gentoo: .tgz, .tar.gz, .tar.bz2
emerge foo

Sabayon: .tgz, .tar.gz, .tar.bz2
equo install foo _or_ emerge foo

Arch: PKGBUILD, pkg.tar.gz
pacman -S foo
makepkg -stuff foo.pkg.tar.gz

RedHat/Fedora: .rpm
yum -stuff foo

SuSE: .rpm
YaST foo
rpm -i foo
yum -stuff foo

See what I'm getting at?  Let's not forget the good old reliable: 
./configure
make
make install

All Linux distros can handle regular "make install" procedures (AKA, building from source packages).  So what's the big deal?  The big deal is this, we have all of these great distros, and all of these great tools for managing packages, but we don't have a STANDARD package manager.  Sure, each of us using Linux can install most anything we want with a few keystrokes, but what happens to a Windows user who is just trying out Linux (probably Ubuntu) and realizes that there is some program that they want but it's in another repo? Or worse, Ubuntu doesn't have a .deb for it?  They are SOL!  They are going to possibly see a how to on the web that shows them how to build that package, but then we're back at the fear of the CLI again.  They run back to Windows crying in a corner with their thumbs in their mouths faster than you can say "WTF!?!" 

Now, I don't like the average Windows user any more than they want me to describe the average Windows user in my terms (they're pretty harsh terms), but unfortunately, this is the market that we have to cater to if we expect what all of us in Linux land want: Our favorite OS having REAL support for all of the fun things that we want it to have real support for.  What we need is a standard package manager.  Unfortunately for all of us avid Gentooers out there, that means a binary distro (if you don't know what that means, it's not important enough to you for me to explain it here, just suffice it to say that there are Linux users out there who by their existence define the word "Masochist").  We need a powerful package manager (sorry apt-get) that's simple enough for the layman so that it can be easily wrapped into a GUI, but extensive enough for the power user.  We need a standard archive extension for these packages, we need actively maintained repos and branches, and we need a whole TON of packages.  If we can get all of the big distros to agree on a package management scheme, a standardized base system, and a GUI for said package manager, we will be one hell of a step closer to making life easier for those users that we really don't want to answer questions for in IRC.

Linux has made some huge strides in becoming an awesome desktop OS.  Many, many, many, many, users all over the world are using various Linux distros on a daily basis as their primary OS of choice with tons of different interfaces on even more variations of hardware, using almost limitless free software.  This is a GREAT and POWERFUL thing!  But until the community as a whole can come up with a broader standard to build off of (not just, "Linux kernel, check") we are still going to be regarded by the lesser users out there as using the "Hobby OS".  I've been using *NIX based OSes since I was 7 years old.  That's a little over 20 years.  I didn't use a Windows machine until I was forced to in High School for a computer class, and then again when my girlfriend of the time (now my wife and Arch Linux user) asked me to fix her mother's Windows 98 PC.  Since then I've used every version of Windows out there (I even went out and setup virtual machines for Windows 3.0 just to do some research) and have always stuck with Linux in the end.  That's love right there.  Ask a Windows user (the typical one) why they love Windows, they won't have an answer for you (unless they don't understand the question, at which point they'll say, 'I love firefox and facebook.')  

Windows users (the typical ones) don't "love" their OS, they use it.  They have a very impersonal relationship with their PCs.  They click on the screen and expect a certain action.  Linux users love their OS.  They carefully install it, maintain it, optimize it, customize it, dress it up in cool graphics, slap some compositing on it, cry with it when some script they wrote goes wrong, and take the utmost care of it.  We have to find a way to put that into a Windows user who thinks that they might want to try this OS that "never" get's viruses or malware.  Let's be honest with each other, not getting viruses and being a "free" OS will only get you so far.  You've got to make them love you before they'll put aside that other OS and hop in bed with what is sure to be the ride of their life, if they can install the software easily with a mouse.

/rant

No comments: