Linux *does* suck…

But not in the way and/or for the reasons you may think. Of course this is all strictly personal opinion and may not reflect any others using the software bundle.

Why does it suck?

There’s a culture of accepting something that’s “good enough” in the Linux world and this really doesn’t sit well with me. Especially since I know many of the developers involved wouldn’t tolerate the same acceptance in other projects/fields. There’s a reluctance to take a step back and ask “is this good or just ‘good enough'”. 

Above all else, there’s a severe aversion to the question : “Does it suck?”
There’s no reason to fear or hate this question irrespective of how much time and effort went into it. An honest answer can only make it better.

It’s never “good enough”. It should never be “good enough”, and if it ever seems to reach the “good enough” stage, you’re not working on it hard enough or you’ve overlooked something.

If it was just a matter of eye-candy, I wouldn’t even be making this post. What I’m after is much, much more in terms of usability and intuitiveness. For starters, there are things that need to be tweaked, adjusted, monitored, or otherwise involve some kind of user intervention (even if it’s just once during setup). Not much, but just enough to ensure fatigue for new adopters. It’s that initial hurdle that feels like Everest for grandma.

Actual productivity will arrive a bit later as familiarity sets in.

So what is it that I want?

Linux needs to suck less than Windows, in terms of usability and intuitiveness. And, possibly, suck on par with Mac.
(Welcome to my brain.)

If I truly had my way, I would go with a LFS distro of my own, but I don’t think that will be solving the problem for everyone else. Or even make everyone else understand that there is a legitimate problem (that is also part of a specific mindset as well as a technical hurdle). I’ll get exactly what I want, but there would be no way for me to maintain it for other systems or produce something production quality for everyone else on my own. Even worse, I would be repeating the same efforts carried out by thousands elsewhere.

Not a whole new distro

That’s already been done before and all it does is fragment the Open Source community. And what many developers seem to overlook is that they’re violating their own DRY (Don’t Repeat Yourself) paradigm whenever they embark on such a project. If you emphasise this in your code, then why violate it in spirit by embarking on a whole new distro to solve the same problems?

If you stop spending time on competing efforts (yes, even if you do share code, you are competing) and cooperating instead, a vast majority of these issues would have been solved already. What we need now is a layer or overlay on the platform to provide the additional usability.

I can understand, and do appreciate, that the majority of development going into Linux distros come from volunteers. Perhaps because of that, I almost get the feeling that the majority of development is carried out by tired day labourers. Often the responses to criticism do present an aura of frustration with, not only with the complaints and those who make them, but themselves as well.

There’s never enough time, never enough resources and never enough manpower to fix “every little problem specific to one user”. Well for every one user that complains, chances are there are a dozen others that silently reject the entire platform. That’s the real shame and it’s all the more reason to not repeat the same efforts and waste those precious resources.

Debian is already there… Just work from there.

Debian is the past, present and future of Linux

What basically amounts to the Swiss Army Knife of operating systems, I believe the project has truly earned the title “Universal Operating System”.

I’ve yet to come across any other distribution that is as stable, as secure and as easy to customise as Debian right out of the box. It’s no wonder why so many other developers have chosen it as a base system to launch their own distros.

It’s usually Debian in a skirt or Debian in a pair of pants or Debian nude…

The problem with Debian, again, is that it’s just “good enough” when it comes to most things related to user interactivity.  And I’m not even talking about the bleeding edge stuff. Everything else is rock solid, but that’s just the nagging point. You can get the system to do almost anything your heart desires, but you have to work at it.

To me, this is unacceptable because I know it doesn’t have to be that way.

Ubuntu, which is really Debian in a mini-skirt, gets the cake for trying hard in this area, but there are things to be improved. Mint, which is basically Ubuntu all dressed up (Debian in a mini-skirt + tiara and makeup) gets further along the way, but is still not quite up there.

In the opposite end of the spectrum is DSL (Damn Small Linux) which is basically Debian nude.

OpenBox, the saviour of Linux

This isn’t as strange as it sounds. There’s a great deal of flexibility and power in this deceptively simple software package, if only we bother to look a bit deeper.

OB is far more efficient when it comes to horsepower management (CPU, Memory, Graphics etc…) and incredibly flexibile in customisability. I don’t believe there are other window managers that quite match OB when it comes to balancing appearance and efficiency with performance and productivity. This is the ideal foundation to start any usability improvement project.

Linux needs friends in gaming & hardware

Hard-drive manufacturers and high-speed Internet service providers owe a word of thanks to the porn industry.

Likewise, Windows owes a great deal (and is owed a great deal) to the gaming, devices and hardware industry. The vast majority of drivers, API’s are specifically tailored for Windows and plastered as an after thought for Linux. Which would explain why detection is less of an issue on Windows (at least in XP).

Even Dell’s half-hearted dip into Open Source should be exploited, if it will yield results. Do you want “it just works” functionality on Linux with devices and hardware? Well, you can’t go to bed with the devil with having sex. This is no time to be prudish, so take off those knickers and get comfortable with the idea that you will be confronting and cooperating with the corporate world. Sometimes, that will mean proprietary drivers etc… Other times, a heart to heart conversation that may sway the argument in your direction.

The point is, don’t completely rule it out on ideological grounds.

Don’t repeat the same efforts.
Start with Debian.
Work on OpenBox.
Then improve the heck out of both of them.

I mean the the whole gambit of utilities, drivers, devices, interface, usability, environment, installation… everything.

This, I believe, is the path to a Linux platform that doesn’t suck.

Advertisement

Saint IGNUcius has sent me his blessings.

As I have finally managed to get Mono working on Debian.

I have blessed your cluster, my son

I have blessed your cluster, my son

Not being a spectacular PHP developer, my web programming efforts have primarily been focused on ASP.NET, ASP and Perl before that. I managed to get my C# Indexer app on Debian up and running and managed to pass the results to a mod_mono equipped Apache install. If all goes well, I may be able to finally setup a fully Open Source cluster capable of serving ASP.NET pages.

This just goes to prove, you don’t need to fight technology to get it to work. You just need to apply it correctly and have a little patience (and not use too much of it). Failing that, a willingness to start from scratch and go about it correctly from the beginning if all else fails. Either case, this was an interesting adventure and I’ve learned a lot.

Considering my previous post on getting a thought archive off the ground, I will hopefully be able to post a few ideas here using my new setup. If an XML database is not feasible, a MySQL or Postgresql DB with some form of O/R mapper may work, but I would rather not have this kind of added complexity and just stick with SQL. I’m leaning strongly toward Postgresql because of the clustering and replication advantages.

From a programming perspective, the “Everything is an Object” approach makes sense, but I’m not sure if that would be practical in this case. If worse comes to worse, I could always avoid reinventing the wheel and go with the muti-table category approach.  We shall see.

Hopefully St. IGNUcius will be pleased with my efforts.

Good reading: