Saturday, October 20, 2007

Beyond Ubuntu

You bought the fastest and newest computer your local computer store had to offer. The machine looked very slick at first but the problems that plagued you for so many years started to crop up all over again. The machine is gradually becoming slower, the viruses eat through your precious data, pieces of your operating system seize functioning randomly. You had enough. So you dared and took the crucial step.

You popped the Ubuntu CD into your computer and hoped for the best. Installation was a breeze. Hardware was recognized without a hitch. You have been awed by the amount of software that fits on that single CD. Web browsers, email, office suite, databases, music and video players, CD burners – all for the price of...nothing.

Your important collection of pictures, music files and documents never seemed so well taken care of as with Ubuntu. Memories of viruses, spyware and constant reboots are fading away into a dark hole never to resurface again. You have seen The Light. You have been convinced that Ubuntu is The Way. Can it get any better?

Yes it can!

What am I talking about? I am talking about the last Linux distribution you will ever need. No, not only the last distribution, but the last piece of software you will ever need. I am talking about a distribution that will make you forget that there is such thing as a "distribution" or "operating system", the way Ubuntu made you forget viruses and reboots.

I am talking about Debian.

And not just Debian, but Debian/Testing.

Huh? What do you mean? Isn't Debian some antique version of Ubuntu? Why would I want to go back to some 'old' technology? What is this "testing" thing?

Allow me to explain.

Actually, you probably know that Ubuntu is a Debian spin-off. It inherits most of its technical basis and adds a lot of things meant to make the distribution easier to use by novice Linux users.

Debian divides its own packages into following categories:

  • experimental
  • unstable
  • testing
  • stable

The category names pretty much explain the stages a package has to traverse in order to reach the level suitable for general usage (stable). New packages usually enter Debian repositories in the experimental category. Here, developers don't guaranty anything. Using packages from this stage may break your system, delete your hard disk or eat your children. Very often the software itself in this packages is in alpha or beta status and is really only meant to be used by developers working on them to bring them in better shape.

Unstable stage is reached when a package is reasonably safe to be installed. It may not work properly, but your children will be safe. Again, no guaranties are given.

Testing is much better. It means a package will be runnable on all platforms Debian supports, all critical/grave bugs have been fixed and it will stay there until it is replaced by a newer version. Minor bugs may be present, but nothing to write home about.

Once in a while developers decide that all packages in testing are worthy of being upgraded to stable and a new Debian version is released.

It may take many moons for a package to pass from experimental to stable. The last part, the jump from testing to stable is the slowest one. And that is the weak part of the scheme, from the home user's point of view.

When your are flying a space ship, or you are responsible for preparing pay checks for 10.000 employees of your huge corporation, you will want nothing but stability. You cannot compromise with that. It simply must work. You need STABLE software that does its job "as advertised". The Debian stable category is meant to be filled with such software. It takes time to reach such level, and for that reason the software will be slightly (and in many cases, no so slightly) out of date.

Things at your home are little bit different. You want features. Features is what makes you productive. You really need that new "red-eye removal" plugin of your favorite digital image processing program. You can't wait a year or two for something like that.

So, I am making a suggestion to start using Debian/Testing on your home computer.

Testing category is a good compromise between new features and stability. Once in testing, a package will usually work and minor bugs you won't even notice get fixed on daily basis. As the new software revision of your already installed packages reach testing stage, they will replace the older versions on your disk, thus providing you with constant stream of new features.

But this is not even the best part.

Let me tell you what you will really gain by starting living in the Debian/Testing stream.

You will have to install Debian only once for the LIFETIME of your machine

Yes, only once for the next several years. It will make you forget the meaning of the phrase "operating system installation". Debian's ingenious 'apt' system will keeps your computer up to date with the newest releases of installed software This is different from Ubuntu's way of doing things – a major upgrade every six months. I don't know about you, but this such a time waster for me. I don't have nerves to sit twice a year in front of my computer(s), making backup of my most important data (or not) and pray that everything will go right after the update this time around. Even if it does go smoothly (and with Ubuntu it usually does), still, there goes another two days of my life I could have spent doing something more meaningful.

Small, harmless updates every couple of days or weeks sounds much better to me.

Smaller updates also mean that new features come gradually – much easier for you, the user, to absorb them and become familiar with them. I remember the day when I suddenly discovered that last update provided my computer with the ability to read text aloud to me or that my mail client could do proper IMAP and HTML editing. No fanfares, no ringing bells – the new feature were simply there for me to use them if I wished so.

Smaller updates also mean that when something is not working right you may usually ignore problems – they will sort themselves out with constant stream of new updates.

I am writing this article on a five years old laptop and I had to install Debian on it exactly twice. First time when I bought it and second time when the hard disk died and I had to replace it with a new one. In the beginning I had all sort of problems – no 3D graphic acceleration, non–functional hibernation, suboptimal display resolution, inferior word processing software, jerky music playback – all this I simply ignored and waited for new drivers and software to be pushed through the Debian's update system. Instead of searching the internet trying out half–cooked hacks to make things work, I simply ignored the problems – the solutions would eventually come by themselves – magic!

Yes, I am realistic, sometimes you need the solution NOW, and if it is worth to you, then go ahead and make your hands dirty. But I never really needed ALL solutions for ALL the problems at the same time – when possible, I simply let Debian developers sort it out for me.

Debian will never promise more than it can deliver

If a feature is not present it means either that it is not mature enough to be released to the general public or that is has been overhyped and died before it had a chance to reach Debian repositories. This sounds really good to me. Why waste time following latest fad and trying desperately to run a piece of software that crashes all over my hard disk. Let Debian worry about that.

You will forget to buy a new computer

Debian will really work on older hardware, unlike other distributions that make such a claim – in part because tailoring the software to suit your needs and your machine is so easy. This is also OK. Faster networking, bigger disks, better graphics – these are the reasons to upgrade your hardware – not a new bloated operating system that performs same tasks as the old one did all these years, only much slower. If I am ever going to replace my main laptop it will be because I miss USB 2.0 connectors and built–in wireless – the software is fine, thank you.

I still have my very first computer, an Intel 486 processor (remember those?) with two 250MB disk (that is MegaByte not GigaByte) and 20MB RAM that happily churns as home router and firewall. It is fully updated with the latest version of necessary software security patches developers had to offer – I turned it off only when my new internet provider gave me a new router – and I realised that it uses less power than my faithful 486. But I am not throwing it away – it is still a fully functional computer, I may yet find a purpose for it.

You won't have to choose in advance

Kubuntu, Xubunutu, Ubuntu, server this, server that– wtf? Why do I have to make this choices in advance? If decide that I want to switch from Ubuntu to Kubuntu why do I have to go the installation process again? 'apt–get install/remove kde' and 'apt–get install/remove gnome' is all a man needs. Everything else is marketing (yes, I know, you can do that in Ubuntu too, I am trying to make a point here).

18.000+ packages last time I bothered to find out the exact number

18.000! No distribution comes even close to Debian in regard to available packages for it. If a piece of software is not there then it's either not worth bothering with it or it has not been invented yet!

With this huge number of packages Debian provides a paradigm the big players in the industry are trying to push on us for the last decade(s) – a thing called "software as service". They promise us a world of always up-to-date software and easy (or no) installation. In reality they want to make you pay up for every little piece of crap you download regardless whether you need it or not, but they still cannot figure out how to deliver it efficiently (web browser still don't really cut it) and more importantly, they cannot figure it out how to make you pay for it.

I see Debian as my software provider. Download a program you need, use it, remove it when you don't want it any more – simple as that! This is what I meant when I said that Debian is the last software you will ever need.

A business could be built around Debian's way of doing things. I can imagine paying a reasonable monthly amount for using such a service. In fact, there is a company, whose name now slips my mind, that is pursuing such a business. But they blew it because they were offering only a subset of software Debian has to offer. What a stupidity. Can you imagine paying money to your Internet provider when all he is offering you is http? No mail? No network gaming? No VOIP? No P2P? No ? I want to pay for such service but only one rate for FULL access!

"But hey", you will say, "I want a software that is stable, I don't like that name 'testing', it doesn't sound very encouraging to me". Let me tell you a little secret: the software on your Ubuntu CD has been largely been copied from Debian's unstable or even experimental categories.

I am not bashing Ubuntu with this post. Ubuntu is a good Linux distribution and its success benefits Linux in general.

But Debian comes closest to the thing I expect from computers. It's making them what they were meant to be from the day they where incepted – a powerful tool, enabling us, the human beings, to make our lives a little simpler and little better.
If you value other things in your life more than you value the time spent talking care of your computer, then Debian is for you.

With Debian my computer became part of the solution, not a new problem.