What is your current go-to license?

Copyleft is a lever, not a hammer. We could pull it as far as it can go, but that’s not always the most productive thing to do. We are balancing many concerns when choosing a license.

I chose the MIT license for scdoc because I explicitly want to encourage the proliferation of the software’s idea as a political goal.[1] Copyleft only protects the implementation, and imposes a cost in exchange for that protection. In scdoc’s case the actual implementation is small and easily replaced with a new one, so it doesn’t make sense to pay that cost.

Another license I often use is MPL, which is copyleft but much weaker than AGPL. I use this for many of my libraries. Again, it’s a matter of asking what goals I’m trying to achieve and to what degree the choice of license is affected by these goals. When I use MPL, I am retaining many of the benefits of copyleft but making it easier to do a few important things (such as vendoring or static linking) without onerous compliance requirements or upending the license of your whole project, which is important for meeting the goals of the project as a whole.

In this example, using MPL can actually increase the amount of code that is made free, because it makes the system more easily adapted into a variety of use-cases while still having an obligation to share the source in most of those use-cases. Sure, you could run it on a server, but the most common case may not be for server-side code and making it easier to use for those cases while weakening the copyleft for the server case could very well foster social and political dynamics that produce more free code than otherwise.

Oh, and I chose WTFPL for shit because it was funnier that way.


  1. The political idea in this case is essentially a vendetta against bad man page generation tools with huge dependency trees or obtuse syntax and a desire to reduce their popularity in favor of a simpler tool to the greatest extent possible. Which is kind of a silly and selfish objective, but hey, we all have our reasons for writing code. ↩︎

9 Likes