Choose Wisely
October 16th, 2007 by John EckmanAlex Russell, president of the Dojo Foundation and Project Lead of the Dojo project, posted to his blog last week an essay “On Licensing” which is worthy of its Emersonian title.
It’s the kind of explanation I wish everyone thinking about creating an open source project read. He comes at the question of “How do I choose a license for my open source project” from the point of view of real practical hands on experience. The short version:
If your goal is to get your code into the most people’s hands with the least fuss, go BSD/MIT/Apache-ish. If you care about software freedom at the expense of potential users, or if you want to be able to sell your code later without real competition, go (L)GPL-ish. Those are gross oversimplifications of the choices involved, but as we’ll see they largely line up on-side because they imply that you sort of have an idea of who you want your users to be.
OK, so maybe the “at the expense of potential users” is a bit polemic - I might say something like “if you care about software freedom over the abililty to achieve the broadest possible adoption” - but in the context of the article as a whole, Russell is very even handed about the pros and cons of various approaches.
In addition to taking up the question of which license to choose, he walks through the impact of those choices and the different ways in which license-choice has practical impacts on project success (I’ve picked out key phrases from a number of paragraphs below):
First, you’re going to need to consider the cultural impact of licensing. . . . Ensuring that your code can be mixed with other code that you care about is often down to licensing, so look around and see what others are doing before you pick.
Secondly, consider commercial use. Big Open Source companies like IBM and Sun have a strong preference for clean BSD-ish code. . . .
Next, remember that your project isn’t just trying to court new users, it’s also trying (hopefully) to find new developers to pitch in and make it even more awesome. . . .
Lastly, remember that licensing may be a no-op. Even if you throw all the right flags with your licensing, your code may still suck or your UI may be totally unusable. . . .
Finally, Russell also walks through the importance of contributor agreements, the value of foundations, and the potential for dual-licensing.






