September 21, 2004

Why I use the BSD license

I release a lot of code to various locations on the Internet. Whenever I do a source release, however, I use the BSD license.

The BSD license is pretty simple. Basically, it says you have to include my copyright notice with your code and binary, you can't use my name to promote your stuff, and I don't give you any warranty on the code itself.

The entire license is about 30 lines of very straightforward language. Compare that to the GPL, which is about 6 type-written pages and has as much philosophy as legal mumbo-jumbo.

You may ask yourself why I choose to use the BSD license instead of the GPL, and I can sum it up quite simply. The BSD license is all about enabling people. When I release my code, I enable you to do whatever you want with it...learn from it, use it in your own products, make money off of it, and even modify it and keep the modifications to yourself. Would I hope that a person who modified my code would release the changes? Yes, but I'm not going to force them to do that.

The GPL license is what is called a "viral" license, in that if you use any GPL code in your project, your entire codebase is then subject to the GPL. If you develop some insanely profitable product, but you use a four-line snippet of code from a GPL product, you're sunk. Under the terms of the license, you need to make available all of the code for your product.

You spent a lot of time working on your product, and like everyone else, you stood on the shoulders of those who came before you. With a BSD license, I'm saying, "Go ahead and stand on my shoulders, just give me credit." With a GPL license, you're saying, "Go ahead and stand on my shoulders, but when you're done, I'm standing on yours whether you like it or not."

No comments: