Neil Williams: Free software under the bus
Sometimes, free software isn't better than proprietary, it's true - and one of the principal reasons is that the majority of free software does not use the full power of the freedom of the software. Far too many free software projects are single-developer projects. Many single-developer projects at SourceForge or Savannah and elsewhere have a single maintainer for the distribution providing the packages too and some (including nearly all of my own) have one person doing both jobs. In other words, there is no collaboration upstream or in packaging, so there is little or no benefit to the code of being free software...It begs the question of what happens when the omnipresent developer-under-a-bus risk actually bites.
When comparing free software and proprietary, considering end-of-life effects can be very illuminating, especially when considering the interests of third-parties who come to rely upon the output of the project. When a proprietary software producer declares a software product to be end-of-life (whether due to collapse/purchase of the company or some other restructuring) third parties are left high and dry. In effect, all proprietary software is directly equivalent to a single developer writing free software. The more important the software, the worse this gets because at least if the single free software developer does disappear, the third party can try and pick up the pieces.
The bigger problem for free software is the common failure to actually collaborate. This has been my main upstream bug bear for a long time now. The model must change. New contributors must be dissuaded from writing new code just because they prefer one language over another. Distributions need to change their guidelines for new developers to actively discourage new packagers from starting with new upstream code. We are in danger of undermining the main appeal of free software by not stamping harder on the NotInventedHere (NIH) syndrome. NIH is pernicious, NIH is dangerous and there is even an argument for considering NIH as an anti-feature.
New is considered harmful
New is not necessarily a good idea, new can be positively harmful to the interests of the wider software community. New promotes reinventing the wheel. It's another incidence of "Just because we can, does not mean we should."
If free software advocates neglect to counteract the poison of NIH, then free software will lose the argument by losing the fundamental merit of free software. A freedom which is not utilised is akin to not having that freedom at all. Yes, someone can pick up a free software project after the single developer abandons it but, in practise, what actually happens is that someone else comes along whilst the single developer is struggling along alone and decides to fall prey to NIH simply because the original is written in C and their preferred language is Python or Ruby or Haskell or whatever.
The "choice" argument is simply invalid - providing another implementation of program foo in a different language is just a way of reinventing the bugs already fixed in foo in new ways in a new language - and then adding some more which are unique to that language. Yes, the new developer might argue that the new code is more active but for how long? Long enough to become just as stable as the abandoned code? What benefit is that? In a few years time we will have two abandoned codebases in two different languages written by two different developers who never collaborated on the actual problem both of them were trying to solve independently. Lunacy.
The dilemma for distributions like Debian is that the list of Debian Packages that Need Lovin' is a burden to Debian during a release freeze yet provides an ideal launchpad for new developers to refresh stale code. I've long thought that Debian needs to be more strict on removing such packages, yet at the same time I cannot help but feel that this tends to encourage more NIH behaviour.
It's a common mantra amongst free software developers that many eyes make all bugs shallow. The problem for free software is that outside certain key teams, there are simply too few eyes and the community is not doing enough to shine a light on existing code before dancing to the sound of the NIH drum.
Far too much free software is at risk from that omnipresent bus called "RealLife" and this makes far too much free software little better than proprietary software. Pandering to the fashions of NIH only makes things worse.
This isn't a technical problem that can be solved with a new cool tool (which itself is subject to the NIH poison), it is a social problem and, sadly, the free software community has a history of failing to tackle purely social problems successfully.
There is a small role for existing technical solutions to make it easier to spot NIH tendencies, including sites like SourceForge and Savannah having greater scrutiny about new projects and distributors like Debian being more averse to adding yet more ITP bugs (or closing them automatically unless something happens within a month). Fundamentally, it comes down to how new and existing members of the free software community decide to handle their own projects and bugs. The model of "do it this way because that's more fun" has got us so far, the challenge is to remove NIH tendencies without removing that fun.
Recently I noticed
Many times we can recognise different periods in our lives, but the line
that divides those periods is not always clear. As I write this on the plane
that is going to take me back to Argentina, I know I am closing something.
20 months ago, I took a plane in the opposite direction. The idea was to
live and work in France for something like 7-9 months; I stayed more, got a
Master's degree, met a lot of people, made some good friends, found a place
that we would call and feel as home; and generally had a great
time, so much that I almost didn't have time for any hacking.
Good bye, France, the fond memories of this time are going to stay with me.
Maybe someday, life brings me back.
Tags: Planet Debian, Planet Lugfi, Vida
Went to the
On Cancun's Success and Wikileaks
The success of the international climate conference in
Cancun appears to be a great (and desperately needed) leap
forward in the struggle to preserve our climate. At least
news sources in Germany marvel at the very much unexpected
and bigger-than-hoped outcome of the final declaration.
However, I keep wondering whether this could also be the
first big
success of Wikileak's power: what if Cablegate's timely
leakage of the US and China's double-game at the Kopenhagen
summit has scared their delegations so much they did not
dare to repeat the backstabbing of the climate conference a
second (or thrice?) time - in fear of their actions being
defaced another time next year?
If this was the case, one could either call this
Diplomacy
by Fear or Diplomacy by Transparency - I choose to pick the
latter. And if it indeed turns out Wikileaks had been the
prime source behind a success for our planet, nominating the
organization for the Nobel Peace prize does not look so
absurd to me as it did last week.
I recently decided to try maintaining a Debian package (bibutils)
without committing any patches to Git. One of the disadvantages of
this approach is that the patches for upstream are not nicely sorted
out in ./debian/patches. I decided to write a little tool to sort out
which commits should be sent to upstream. I'm not too happy about the
length of it, or the name "git-classify", but I'm posting in case
someone has some suggestions. Or maybe somebody finds this useful.
I had a nice conversation with the people at Tap N Tap (who produce the firmware image used on the Viewsonic gtab tablets) today, so with luck we'll see some progress on that front in the near future.
(This is part of a series of posts on
The two first interviews were dedicated to long-time Debian developers. This time I took the opposite approach, I interviewed David Kalnischkies who is not (yet) a Debian developer. But he s contributing to one of the most important software within Debian the APT package manager since 2009. You can already see him in many places in Debian sharing his APT knowledge when needed.
English is not his native language and he s a bit shy, but he accepted the interview nevertheless. I would like to thank him for the efforts involved and I hope his story can inspire some people to take the leap and just start helping My questions are in bold, the rest is by David.
Who are you?
I am David Kalnischkies, 22 years old, living in the small town Erbach near Wiesbaden in Germany and I m studying computer science at the TU Darmstadt. Furthermore I am for more than half a decade now young group leader of my hometown.
I never intended to get into this position, but it has similarities with my career in this internet-thingy here. I don t remember why, but in April 2009 I was at a stage that some simple bugs in APT annoyed me so much that I grabbed the source, and most importantly I don t know why I did it but I published my changes in Mai with
As I
The
I'm using GTK+ in my paid work, which is being cool because I like this library. It's not the first time I use it for paid work, and I like these opportunities to learn more about it and possibly report bugs. It's not easy to find bugs in such a widely used library, so much of them end up being simple cosmetic mistakes, like