22 June 2007
Linux reloaded
Linux users are fiddlers.
They like to poke stuff, prod around, fix this and that, curious like little monkeys. They can be extremely individualistic, never satisfied by someone else's solution, willing to customise the very last bit of everything.
Debian and Gentoo are two of a kind. Apparently very different in their approach to technical issues, they actually manage to channel their developers' and users' geeky enthusiasm in something bigger, thanks to explicit and implicit ideological premises which look much more similar than what their communities might think.
The problem of this approach is that there is no opt-out. Very few packages have a pre-built binary, and even then switching between binary versions and regular ones is not really foolproof. This means long compilation times, and a more stressed hardware overall. The community is a bit more anarchic than the average bunch of Linux geeks (if possible) and efforts to institutionalise it resulted in alienating several key developers, and accusations of getting too close to the disparaged "political" model followed by Debian. The original founder moved on (to Microsoft, the enemy!), then dwindled back to find its child creature having changed too much for him to bear. It's not clear if Gentoo will "still matter" in a few years.
This philosophy produced what is currently regarded as the best software packaging system ever deployed (dpkg/APT), which manages to be both extremely simple for users to adopt, and extremely flexible for developers to customise. It also resulted in the biggest software repository ever maintained, with thousands of packages available for dozens of supported architectures, whose maintenance is an extremely challenging task by itself.
This also reflects in Debian's social stance, which is both more logical and radical than any other distribution. While Linux vendors will usually play in a very grey area, mixing commercial and not-for-profit interests (with very little safeguards for both parties), the original Debian community unapologetically chose to always guarantee the interests of not-for-profit initiatives (and the rights of end-users) over corporative greed.
While Linux communities usually favour informal structures and processes, Debian developers laid out a complex (and often Byzantine) system to guarantee that participation be open to everyone on a fair basis, and that solutions be transparently chosen in democratic ways.
Recent examples of this behaviour include the year-long license "purge" (dozens of packages were removed from the repository or forced to explicit their license as GPL), the ABI migration (a change in the GCC compiler which required all packages to be rebuilt or modified, delaying release of the 3.0/"Sarge" release) and the fight with the Mozilla community (which, after becoming a corporation, challenged Debian's independence in handling their sources, to which Debian developers replied by ditching the official Firefox/Thunderbird names and logos in their builds, replacing them with ironic Iceweasel/Icedove counterparts -- a move, they say, which was then technically obligatory on legal grounds). These were all but uncommon events for Linux distributions, however only Debian managed to choose the most unpopular ways to resolve them... because they were, strictly speaking, the most radical and logical as well.
This "infrastructural" work (both legal and technical) allowed Debian to eventually emerge with two major releases in a relatively short frame, and a very good outlook for the future; while all distributions experience a shrink of efforts based on their codebase, Debian produced a spin-off that emerged as possibly the most popular distribution for non-geeks (Ubuntu), the revolutionary "LiveCD" approach (pioneered by Knoppix), and went on to become the de-facto standard for new efforts.
...
This post started with the idea of explaining why yesterday, on my laptop, I switched from using Gentoo back to Debian. Having experienced Gentoo for a year, I grew a bit tired of huge compilation sequences; moreover, the pace of changes and breakages in the "portage" package repository is currently very high. I used to rave for the latest and greatest version of each application, but now I find that 99% of my requirements are well catered for by year-old software. So I moved to Debian's stable release (4.0/"Etch"), whose rock-solid quality I already know. I used to run the unstable "Sid" branch, but I no longer need bleeding-edge stuff, neither need I heavily tweak a system in order to make my laptop devices work, which was the experience that had led me to Gentoo. I know that the Debian community is massive, and there are thousands of support resources on web and IRC, so I'm confident that, should I have a problem, somebody will know the solution already. And I know that I'm running software with a social purpose, to which I can contribute something back without feeling that I'm just being used for cheap labour.
Is this a sign that Linux is finally mature, stable, and ready for the masses? Or it's just that I'm getting old?
Labels: Debian, Gentoo, linux, philosophy