I've come under fire in the past for speaking out against the GPL. I want to clear up a few things:

  1. I strongly believe in and support open source
  2. I still distribute and contribute to projects licensed under the terms of the GPL

The Value of Open Source

The competitive advantage of software companies is not the code they produce.

Much of my freelance career consisted of clients asking me to copy features, layouts, or interactions from their competitors' websites or applications. Frankly, just about any engineer can look at an already-implemented product and devise a way to produce the same feature set on their own. Protecting your code - the how of your product - doesn't protect your profits.

If you build software, your competitive advantage is your ability to solve problems with code, not the code itself. It's your ability to describe a customer's pain point and a technological way to lessen or eliminate that pain. You are, through your code, helping your client to tell their story more efficiently, less expensively, or just more effectively.

The value of doing so transparently - by releasing your code with an open source license - is that others can help you shoulder the load. By open sourcing your project, a community can contribute to fleshing out the vision you've built for your customer. Sometimes this is just other members of their team. Other times, your code might be public, and the public can help you further refine systems as you continue to envision, scope, and execute new features.

The value of open source is the contributions coming back to your code that strength it and free you to focus more on what you do best.

How the GPL Limits Freedom

Again, let me say quite clearly that I believe in, value, and heavily support open source software and the freedom it represents. To explain why, I want to list, in summary the freedoms ensured by licenses like the GPL:

  1. The freedom to use the software for any purpose,
  2. The freedom to change the software to suit your needs,
  3. The freedom to share the software with your friends and neighbors, and
  4. The freedom to share the changes you make.[ref]A Quick Guide to GPLv3[/ref]

I agree that these freedoms are highly important, and I seek to provide them to anyone who uses my code. However, I also recognize one simple truth:

Not everyone agrees with me that software, being separate from your competitive advantage, should be free and open.

The GPL requires that licensees remixing, redistributing, or otherwise reusing covered software also extend the GPL with that software. Anyone using my GPL-licensed code in their projects must release their subsequent projects under the GPL as well. In some cases, this is prohibited by the ideological stance of their boss, corporate policy, or even by legal statute.

I distribute my software under an open source license because I want others to use and benefit from my work without restriction. I value my ability to contribute to the work of others far more than my ability to mandate how they use my contributions.

I've said before that, while I hold my beliefs strongly, I will never force anyone to ascribe to them. This is why I license my work under the much more permissive MIT license, which still protects your right to use my work freely without forcing you to agree with me when setting license terms for your own work.

Why I Use it Anyway

I love WordPress. It's the project that started my career in software development and the tool through which I both learn new skills and publish things like this very blog.

I contribute back to WordPress to help support the project that's made such a positive impact in my life. WordPress is distributed under version 2 of the GPL, therefore my contributions must also be distributed under that license.

I also maintain a handful of project begun by other developers. These projects were licensed under the terms of the GPL, therefore my ongoing contributions are also licensed under the GPL.

If I could, I'd re-license these projects under a more permission license like MIT, but I'm not permitted to do so by the license under which I received them.