So I like to run Linux, and over the years I have noticed that I have changed in regards for how I feel about it. No, this is not about the Free vs Propitiatory, it is about Widgets, Windows Managers, toolkits and Desktop Environments.
So a friend of mine made the comment..
“The problem i have with gnu/linux is mainly the inconsistency, lack of quality control on basic elements, different widget toolkits, etc…”
So does this mean the the Linux GUI is not the new Apple of horrible, mistaken, mismatched layouts?
Well, no, but first we need to look in to something to help understand why the Linux GUI is the way it is. A (not so brief) History in to the Linux GUI.
You see, unlike Windows, Linux can run very many Desktop Environments, and some times each one involves a different toolkit. For those that have no idea, the Toolkit is the widgets, buttons, sliders, knobs, even text boxes that you see every single day in every single GUI application that you use, odds are, every day.
The two big toolkits in the Linux world is GTK and Qt. Amazingly enough, each toolkit has it’s own Desktop Environment. You see, the two big Desktops of Linux is, with out a doubt, KDE and Gnome. And here is where it get a bit messy and murky. KDE has mostly two different flavors of KDE3 (now discontinued, and was forked for those that like it to keep on using it) This was mostly made with Qt3. KDE4 is the current Version that is out, with a release as new as KDE 4.9, that is made off of the Qt4 toolkit.
Then we have GTK, who’s whole reason for being around was some guys wanted to make for Linux a freeware, opensource alternative to Photoshop, and in making this app, known as The Gimp, ended up making their own toolkit, called GTK. GTK, by the way, does, or at least used to stand for, “Gimp Tool Kit”. Obvious name is Obvious, right?
And here is the new problem, you see, Gimp’s toolkit was used to make GN.O.M.E. , what you know as Gnome today, and yes, Gnome does stand for something, it stands for the GNU Object Model Environment. Or it used to, not to sure now-a-days. Anyway, GNOME version 1 was OK, but not that great, it had to rely on a windows manager called SAWMILL for help.
Then came GNOME2. Note the lack of period’s. GNOME2 was arguably the best ever version of itself. For many people, it was the default installed Environment. RedHat/Fedora defaulted to it, as did also Ubuntu builds. I say only those two distros because lets face it, with the exception of Debian (what Ubuntu is based off of) and SuSE, they are the Great Grand Daddy’s of Linux.
However, when Gnome3 (note, Gnome is now a lower cased, normalized word now), something amazingly revolutionary happened. GTK3 was made, and for the first time the developers made it so that writing a Gnome 3 theme was used with a CSS type syntax. However, it was not backwards compatible with the Hundreds, and possibly Thousands of pre-existing GNOME2 apps, as far as theming went. This ment that unless if a theme designer made a GNOME2 theme and a Gnome 3 theme to portray one single, unified look, then half the apps out there for Gnome looks nice and good, while the rest look like rejects from the Windows 98 days.
So, we have two toolkits, and two versions of the two main Environments, and that can mean that if you use some GTK apps with a KDE desktop, well, then the GUI starts getting very ugly and fractured. Now some have taken the steps to make some theme interpreters, for example, one exists that takes your current Qt look and GUI feel and will apply it to GTK apps, solving some of the issue, but generally it only works for the GTK2 apps.
And this leads up to Linux Gui Purists.
Please keep in mind I am referring to the early days of Linux, say, late 90’s to early 2000’s.
You see, some feel that the best way to have a consistent UI is to only use apps from one toolkit. And generally, this is possible, now. But back in the day, most of the really good tools had been made for the GTK2, and if you had been a KDE2 purist, then you wither did without, or well and bit the bullet and installed the GTK app. The only real drawback was that for the GTK app to run, well, it needed GTK also, and that could take up a bit of space.
I remember having a very large (at that time) 2GB hard drive, but for me to install all of the apps that I wanted to use, or that is to say, the apps that I would use on a consistent basis, the total install would be some 1.9GB of hard drive space. I actually had to dig out a spare 500MB (megabyte!) hard drive, install it in my computer, and split the space between the swap partition, and the /home folder. And the whole reason for the amazing space-suck on my hard drive was simply that the apps that I wanted ot use belonged to two different toolkits.
At one point in time I wondered “Why did the Linux people not make a default, standard toolkit?” … The answer? It’s one of the drawbacks to Linux being an Open Source System. You can bring in whatever you want, and generally new items are welcomed, if not accepted.
So hopefully that helps out some other out there understand why the Linux GUI is the way that it is. The history behind it, and in fact the whole total reason is this.
The community can not decide upon one type of “Default” standard, simply because it is a Community project. And getting a Community to agree one one thing, in majority, will almost never happen.
Hence some decide to become a “Purist” that is, Qt or GTK, and stick with, and will only use, apps from that one, specific toolkit. Now myself, Even though my bandwidth sucks horribly, I generally try to use just GTK apps… Even thought I have discovered that I greatly like the Qt Development set.
Anyway, that, my friends, is why, as my friend would say “the Linux GUI sucks”. Because the community can not mandate one toolkit to use, because even if they did, some one would ignore it, write an app using the other toolkit, and mess everything up. Sometimes the Linux Community is it’s own worst Enemy. This is one of those times.