I thought it would be interesting to see which licenses are used by members of this forum. (this is mostly for fun, not for actual research)
What is the “main” license you use for your new / current projects?
AGPL
Apache 2.0
BSD
CC0
EPL
EUPL
GPL
ISC
LGPL
MIT
MPL
Unlicense
WTFPL
Proprietary
Other
0voters
By “main” license I mostly mean the license for the code, as documentation and assets can be licensed differently. I use CC-BY-SA-4.0 for my assets and GPL-3.0-or-later for the code.
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.
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. ↩︎
Maybe my use of the word “everything” was a bit dodgy…
This is completely fair and I agree with your “right tool for the job” philosophy with licenses. I just don’t know why, if you want to pull the copyleft lever far into “give back or else”, you’d ever want to leave the ASP loophole open.
While the WTFPL is a funny license, there is funnier. I even made my own, and I’m not completely unserious about it!
I generally go to MPL as my go-to license. I feel that it offers a good trade, and has the good set of protections (specifically against patent trolls).
For some binaries, I may go with GPL. But again I start with MPL.
Well Said, well said. I use AGPL most often because i don’t want people coming along and turning the code i write into SaaS. For context the code i write is almost exclusively written for me, or other economically disadvantaged members of the disability community.
The code is mine by law, but was written for my people , the AGPL is a big warning sign to corpos to keep their mitts off it.
But i’ve used others when there were other goals in play…
Also it’s important to remember that free software is a necessary pre condition, if we want more equatable and just software development. But it’s not the whole ball game…
What we really need to defeat is the ethos of “Science Discovers, Industry Applies, Humans Conform”, but that’s a whole other essay… It’s 5,000 words in length and needs an editor…
How do you feel about the clause allowing distribution of code under future versions of the MPL? I mean this clause:
You may distribute the Covered Software under the terms of the version
of the License under which You originally received the Covered Software,
or under the terms of any subsequent version published by the license
steward.
I low-key fear that a future version might not retain the spirit of the MPL-2.0 and code can immediately be re-licensed under it.
Aye, this is something that raises my eyebrows. I wish this was something licenses just didn’t do, but I see why it’s important for copyleft compatibility. It would be smarter to carve out exceptions for future additions to compatibility tables.
MPL sounds like a reasonable compromise for when you want coplleft but to allow “linking” (whatever that actually is), but it rubs me the wrong way that the copyleft is per-file: if you modified some files, you only need to release those. But programming language modules usually have multiple files which communicate over private interfaces, so proprietary downstreams can modify the module by adding their own code using prvate interfaces in extra files and don’t have to contribute that back.
When I release a library with a linking exeption, I want the whole library to be useable, but to get back the complete modifications.
LGPL is one step more: it requires that the user can relink the libraries. In Rust, for example, without a stable ABI, distributing object files is not a thing. So a Rust LGPL library is one which no proprietary system will bother with at all.