Been briefly taking part in and watching a discussion about wether Launchpad should be released. The debate made me think about wether all code releasing is truly important or even a good thing.
Once upon a time I was writing articles for a now defunct news site called linuxpower.org. For this site a special publishing system had been written. I know Jeremy considered releasing the code we used for the site a couple of times, but in the end I remember him concluding that the code wasn’t really in a release worthy state and that he didn’t have the time or the interest to clean it up in order to add yet another half-done publishing system the world.
While we all where strong supporters of free software none of us had any problems with this decission. Part of the reason for that is that releasing the code of something doesn’t automatically make it useful for people. In fact it may only be a distraction as you get more useless crap showing up on google when you are trying to find something.
For the release of sourcecode to be truly useful the code needs to be in a state where its been prepared for consumption by anyone else than the original creator. Getting hold of a source package that do not compile or run cause you don’t have access to the 7 post-it notes with manual instructions, the 19 steps only stored in the memory of the creator and is using some database tables you don’t have an sql script to create tend to be of abysmally little value.
A lot of source code is written by one or two persons for their own private or professional use. Code written like that is often using a lot of shortcuts to achieve its tasks, like hardcoding values, no code comments, no documentation, no real build system, relying on a database structure thats been created manually and incrementally over a period of time and so on. Thus sending that code out there doesn’t make it instantly useful. So unless your application is truly special nobody will probably ever bothering spending the weeks or months it would take to make it useful to themselves or the even longer period it would take to make it useful to the world at large.
That said there are of course cases where even such code could be useful, for instance if the code documents a certain piece of hardware or fileformat. But once again it would require the code to actually correctly document the hardware or fileformat in question, sending out a file called nvidia-driver.tar.gz which contains a driver you tried to make by trial and error, but which never did anything apart from cause 4 of your graphics card to stop working permanently is probably not doing anyone any favours. At least not without a lot of code comments and a big warning.
Which brings me a back to trying to pressure someone to open source something. In many cases unless the person asked to release some code wants to release the code to the world and thus is willing to take the time and effort to make sure the world would truly be able to use the code then getting the code released would probably be of little or no value. In fact it might just be adding to the noise making googling for actually useful code a little harder.
So in terms of Launchpad. I am sure it could be a useful tool for various people or groups if released, but release means more than doing ‘tar -cvf lp.tar /var/www/’. Thus unless one can convince Canonical that there is true value for them in spending the time and the money to prepare LP for a release and maintaining that release as a public project, then all achieved is probably getting a big tarball of useless crud put onto the net and at the same time have wasted developer time on an effort of little value.
In the meantime maybe effort should instead be spent on improving existing projects already available which has a featureset similar or close to what Launchpad offers.