How the GPL Limits Freedom

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. 1

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.


  1. says

    I go with public domain. I know a secret — God is perfectly just.

    Go the Second Mile

    38 “You have heard that it was said, ‘An eye for an eye and a tooth for a tooth.’[a] 39 But I tell you not to resist an evil person. But whoever slaps you on your right cheek, turn the other to him also. 40 If anyone wants to sue you and take away your tunic, let him have your cloak also.

  2. Shibu says

    Lets assume a scenario here…
    you find a person locked up in a prison…. Now you have two options…
    1> you can release the person from the prison on the condition that he will not lock up anyone else in prison.
    2> you can release the person from the prison on the condition that he can lock up anyone else in prison.

    The first option is equivalent to GPL. you extend the same freedom to others which you yourself have received from some one else…

    The second option is equivalent to MIT/Apache/…. you have received freedom from someone else, but you can still imprison others…

    • says

      Therefore, the kingdom of heaven is like a king who wanted to settle accounts with his servants. As he began the settlement, a man who owed him ten thousand bags of gold[b] was brought to him. Since he was not able to pay, the master ordered that he and his wife and his children and all that he had be sold to repay the debt.

      “At this the servant fell on his knees before him. ‘Be patient with me,’ he begged, ‘and I will pay back everything.’ The servant’s master took pity on him, canceled the debt and let him go.

      “But when that servant went out, he found one of his fellow servants who owed him a hundred silver coins.[c] He grabbed him and began to choke him. ‘Pay back what you owe me!’ he demanded.

      “His fellow servant fell to his knees and begged him, ‘Be patient with me, and I will pay it back.’

      “But he refused. Instead, he went off and had the man thrown into prison until he could pay the debt. 31 When the other servants saw what had happened, they were outraged and went and told their master everything that had happened.

      “Then the master called the servant in. ‘You wicked servant,’ he said, ‘I canceled all that debt of yours because you begged me to. Shouldn’t you have had mercy on your fellow servant just as I had on you?’ 34 In anger his master handed him over to the jailers to be tortured, until he should pay back all he owed. (Matthew 18:23-34)

      I never said I agreed with the decision to keep source closed – or to imprison others, following your scenario. My point is that I think software should be free. I also think you should be free to decide on your own whether or not you agree with that and refuse to select a license that forces you into a position with which you disagree. When all is said and done, you are well within your rights to play the role of the unmerciful servant above.

      • Shibu says

        I am only saying that, it is better to live in a world, where we do not give an option to harm. let freedom spread :)

        • says

          Whether I grant you the option or not, it’s still well within your capabilities to harm. I’d rather spend my time producing good and being an example of (what I consider) right behavior than hunting people down for (what I consider) wrong alternatives.

          There are many things I consider harmful that others consider perfectly OK. And things I consider perfectly OK that others consider harmful. I’m not their judge, so I live my by own code and let others choose to follow a similar one based on their observation of my actions. If I can be a proponent and example of the benefits of open source, I can encourage others by my actions to follow suit. Forcing that following, particularly upon those who disagree with the principles upon which it’s based, will only breed contempt, disharmony, and a willingness to look elsewhere for a solution that doesn’t include either me or the principles I espouse.

Leave a Reply