giovedì 19 agosto 2010

Be serious: don't use CRAPL! Use Open Source licenses!

Surfing the Web I found another programming license: the CRAPL (Community Research and Academic Programming License). I don't know if the author is serious about this license, it seems he is,  or if he is joking, however I consider the license valid in the following discussion since it raises up a concrete problem about the coding done under research.
The idea of this license is good: forcing academy to release its code as Open Source. The way is tremendously bad: there is no need, in my opinion, for another Open Source like license. 
The aim of CRAPL seems to be the removal of embarrassment of the academic world for the publication of not-quality code due to deadline releases. The idea is to release the code even if it is just a proof of concept without being annoyed with code reviews, design patterns, and stuff like that.
This is crap! It is really controversial!

First of all consider the amount of theory (and practice) in the design and development of software and all the techniques that academy tries to force into industry, for instance eXtreme Programming (XP). A natural question could be: why are you teaching me this stuff if you are the first that do not use it? Academy cannot teach about quality when it is producing low quality software!

Moreover there is no need to use another license at all! If you want to release the code, use an existing license, in particular BSD if your code is really advanced or a GPL like if you are afraid someone can stole it and do a commercial product based on it.
Moreover consider the clause 2:
You are permitted to use and/or modify the Program for the
   validation of novel scientific claims if You make a good-faith
   attempt to notify the Author of Your work and Your claims prior to 
submission for publication.
What does good-faith mean? Moreover, I cannot see any clause that the authors must be reported on modification, as almost every Open Source license states. This is a really important part, since it happened to me that some of my code was not released as Open Source and has been kept by the University I worked, that was so able to do what it wanted with it (even destroy it!).

I really think academy should stop being embarrassed by low-quality code, and should start to produce a good quality Open Source culture. After all, I'm not surprise to see TODOs and FIXMEs in the code, I'm much more surprised to see projects without code.
Finally, I don't find embarrassing to produce a proof of concept and release it as Open Source when the code is enough mature (or beauty, or quality, or your-favorite-adjective-here). But it is important that there is a deal to release (soon or later) the code as Open Source! And it is for this that I cannot understand how the research community can still do a peer review over code that is not (or will not) available in any way! In my opinion, every work that produces or derives code, should introduce the license and the terms of the code itself.

Don't think about embarrassment, code and release at your best. 
Someone else will be proud to fix your ugly-code!

1 commento:

TimS ha detto...

A couple of points:

Extreme programming was not foisted upon programmers by academics - it was created during a project for Chrysler. More to the point, even if computer scientists espouse it, there's a *lot* of academic code that isn't written by computer scientists.

Second: Traditional open source licences only enforce releasing the source upon sale of software, IIRC. The CRAPL encourages release upon publication of results. This is quite different.