It’s late Saturday night. Though I have returned from PyCon India 2010 day-1, there are still a few thoughts on my mind.
Which license do you choose for your open source projects? Strong-copyleft? Permissive? Do you choose LGPL which I consider somewhat between between GPL and Permissive licenses.
I used to be a strong advocate of GPL and strong-copyleft licenses. Now “strong” is missing. I nowadays prefer using MIT/X11 license. If the project is a library of something like that GPL sucks (my opinion). It actually limits the freedom. GPL is fine for projects which consist mostly of UI code. LGPL is something I have never tried before. If I don’t like GPL, then my second choice is MIT.
The most confusing and debated aspect of licensing is whether “sharing of modified code” is actually limiting freedom or guaranteeing freedom? Even though it looks nice, it doesn’t work out to be so good all the times. Sometimes companies keep distance from GPL as it is dangerous since one fine day the upper management might question the people working on the project for the reason of releasing the source code? The case was simple – they were complying with licensing requirements.
The biggest evil I find with GPL is that you cannot link any GPL libraries/module to your application and release it under GPL incompatible license. Why? GPL incompatible licenses are not open source licenses? There might be some legal or moral reasons behind it, but I don’t care so much, as I am not a lawyer.
Now coming to permissive licenses. Now since licenses like Apache and MIT give you more freedom, so there is a chance of misuse. This means that if someone took my code, close-sourced it, so my code becomes less-open? Well I don’t share this view, but highly experienced lawyers do think so. (Alert: Links to TechCrunch, click at your own risk)
From now onwards I have decided to go the way of MIT/X11 license for most of my projects. In any case I am not so good with UI programming, so GPL doesn’t come into picture. Most of my projects are basically libraries or modules or anything which doesn’t have a UI. I don’t even create command line interfaces for a few libraries which I have created.
Good night. Tomorrow is my talk at PyCon India on the topic on launchpadlib and using Launchpad API using python.