I feel like I should understand how these licenses work. I always just choose the MIT licence because it is MIT.
- BSD License
- GNU General Public License v3.0 (GPLv3)
- “if you use this code you have to open source it”
- Apache License 2.0
- Requires you to list all the modifications you make to the original software
- MIT License (MOST permissive)
- No Copyleft requirements; allows proprietary use
So what license should I use?
Stick to MIT License and let people do whatever the f they want with your code. Unless you want to be a d*ck about it and use GNU. I doubt that companies will use my code, I’m not at that level yet. Just want people to use my code and not worry about it.
What are the practical differences?
Check out StackOverflow
How to use licenses properly?
I am still confused lol, I don’t really understand how license attribution works, I just publish the project. Like my project depends on another library, do I need to attribute them / pay them? Look more into this:
Some projects and their licenses:
- GNU -> GNU General Public License (GPL)
- this is why apple switched to LLVM, because GPL was too restrictive
- LLVM Apache License 2
Where does the creative commons license fit into the picture? That is for non-code stuff.
What happens if the license of a project changes?
Say for example that the license was originally MIT (super permissive), and suddenly the maintainers of the project decide to change to something else much less permissive. Are you just no longer allowed to use the code?