Thursday, May 05, 2005
Counterintuitive
So much about free software challenges conventional wisdom.
I don't know for sure if my experience is representative in any way, but I suspect it may be.
I started my Linux experience with Redhat 5.2, then 6.idon'tremember. The rpm madness drove me to Debian, where I enjoyed solid engineering that characterizes the distribution. As advancements in the desktop, compiler and libraries left Debian behind I installed Gentoo. Oddly enough the long builds were very similar in length to the dial-up apt-get upgrades, especially using the KDE packages regularly put together by Ivan E. Moore II. To digress a little; Watching the effort Ivan put into the project moved me to find a way to contribute.
I remember wondering at the time how the free desktop would survive the demands of a less technically adept user base. Attempting to freeze a release in software that was under rapid development seemed to be a colossal wasted effort. It seemed an affront to my profoundly lazy nature. And to call something 'stable' that was frozen even a few months previous didn't make sense. Real bugs, real functionality, real usefulness had been incrementally added over that time.
So I did the only reasonable thing. I ran right off of cvs HEAD. Gentoo had easy ebuilds that made simple work of keeping up to date. I noticed two strikingly important things: the maintenance of the packaging was almost trivial since it pulled directly from the KDE repository, and, the experience was very stable. Oh there were the odd issue, mostly due to rapidly changing software. Most everything worked well, and the important improvements were experienced immediately.
This doesn't make any sense. I should have had failures, data loss, or at least a bad experience. I'm a realist. I knew I was living on the edge. But oddly enough, the most unstable and treacherous times were when KDE was preparing for a release. It should be the opposite. This in spite of the valiant efforts by Stephan Kulow and Dirk Mueller before him as release coordinators. It seemed that the release process broke something.
I don't think this is restricted to KDE. The Kernel developers recognized that fast moving development and attempts at bi-annual or annual releases was fundamentally broken. The distributions maintained (and paid for) a huge duplicated effort. And the kernels were still unstable. Now the releases happen regularly, new stuff is put in and deployed quickly. In general the stability has been reasonably good, again surprisingly.
What brought this whole thing to mind is my recent experiences. My gentoo installation, similar to my Debian and Redhat installations, got too big and ugly, and needed to be mucked out. The easiest way is to reinstall. Lacking time, I installed Kubuntu. It was quick and painless, and I got what I thought was a stable installation. Finally I was no longer living on the edge.
Or so I thought. I'm seeing behavior that I've never seen before. OOM killing, having to delete KDE configuration files. In fact my box isn't as stable as it was before. And I'm running into the frustrations of living with the builds done by others for their purposes. The audiocd ioslave doesn't do mp3's. Mplayer would need a forced install with all the attendant maintenance issues.
Sure I could wait for the bugfixes, or updates to the packages. A slight problem though. I already see fixes and features since KDE 3.4 that I need, that won't be in 3.4.1. No minor stuff either. For example the kpilot work by Jason vanRijn Kasper fixes some issues that I need.
Is it possible that the problems that I've described are from trying to apply conventional wisdom solutions to free software? Almost anything can be done by brute force, by applying unlimited resources to the problem. Free software doesn't have unlimited resources. The duplication of effort to try to package something unpackageable, to the satisfaction of no one seems crazy. To try to announce, organize, test and finish a release when everyone knows the results will be unsatisfactory again seems crazy. Sure, these things could be fixed with tighter discipline. Oh yeah, that doesn't work unless releases every three years is deemed acceptable. Maybe our headaches will stop when we stop banging our head on the wall. Trying to do something that doesn't work to solve a problem that doesn't exist to satisfy conventional wisdom that is wrong.
I have become a firm believer in the importance of source code distribution. The resulting installation represents what the designers of each project had in mind. The feedback mechanism is shortened, duplication of effort is avoided. The only problem is the computer resources and complexity. Gentoo is in some ways purposely complex, not desiring to coddle the users. That isn't necessary. And Moore's Law again comes to the rescue. How long does it take to build KDE on a well endowed AMD 64? That and the compiling speed improvements in GCC 4.x. Beineri's timings show a dramatic improvement in build times, with more speed improvements to come. Instead of trying to control the uncontrollable, organize the unorganizable by packaging everything neatly and instantly obsolete, maybe the solution is to build on the strengths of free software
Regards, Website Traffic Info
Subscribe to Post Comments [Atom]
<< Home
Subscribe to Posts [Atom]