Licenses are boring but you really need one!
Licenses are boring but you really need one!

Licenses are boring but you really need one!

It seems people have a hard time understanding the implications of licenses, so I have written a something to help with that.
Avoid at all costs CC0. CC0 explicitly does not give patent rights. MIT implicitly does.
A good reason to pick GPL is if you want to allow GPL software to integrate yours and you don't care that much about the AGPL clauses (e.g. because your app isn't a server).
CC0 might be a good fit for trivial template repos where you don't want to burden downstream projects with having to include copyright notices.
I've been thinking about this recently... Let's say you develop some local CLI. You think it's not a server, so you license as GPL.
Later someone comes and offers your CLI as SaSS. They write the server piece that just calls your local CLI on their server and pipes the input and output between the user.
So... should you always prefer AGPL over GPL?
Absolutely not! Avoid CC0! Stop spreading bad information. If you want a public domain dedication with fallback permissive license the best choice is (sadly) The Unlicense. It is the only public domain dedication with fallback permissive license approved by both FSF and OSI. It's unfortunate because The Unlicense is still a crayon license.
If you don't want to burden some stream projects with including copyright notices, just don't enforce it if you find people who forgot.
https://www.gnu.org/licenses/license-list.html#CC0
AGPL and GPL v3 are explicitly compatible, IIRC. You can run into some trouble with v2.
The license seems to be targeted towards languages like C/C++. On the other hand, languages like Go do a lot of static linking, so it may be impossible to comply with this license in Go.
MPL may be a good alternative here.
Nah, so long as the folks using the LGPL code provide everything necessary to use a different version of the LGPL part of the code, it doesn't actually matter if it's static or dynamic.
http://www.gnu.org/licenses/gpl-faq.html#LGPLStaticVsDynamic
Well, for specific licenses there are use cases for MPL, which is weak copy left. LGPL is trying to state that statical linking is not allowed, while MPL does. Also, EUPL have simmilar advantages over AGPL, plus that it have very clear defined legal juristiction. So, when it comes to specific licenses there are many reasons to use whatever licence you use. Just make sure you use a license that reflects your expectations.
You can statically link LGPL code so long as you provide the end user instructions on how to use a different version of the LGPL portion of your code.
http://www.gnu.org/licenses/gpl-faq.html#LGPLStaticVsDynamic
MIT - only good for tiny weekend projects like Xorg, Wayland, Mesa, Godot, Jenkins, MUSL, Node.js, Angular, Vue.js, React, Rust, Julia, F#, Rails, PyPy, Redox, and the Haiku Operating System.
AGPL - good for serious projects that you want to be super successful. Widely used software that started off as AGPL includes………. uhh……..wait…….ummm……. lemmy and Mastadon I guess?
Oh, I'm so sorry I believe projects should use more explicit licences over short ones like MIT. Apache is just more explicit than MIT. The only benefit I see MIT having over Apache is if your code base is so tiny that the Apache license like doubles the file size.
I believe a lot of devs value MIT because it is simple, but that doesn't necessarily make it good. Sometimes code needs to be complex. Licences are the same way. Prefer explicit licenses written by lawyers over simplistic licenses and crayon licenses.