One of my own, but posted elsewhere to explain various open source software licenses.
For this, I assume you understand what compilation is.
- MIT and Apache are “Do whatever you want with my code, just give credit with this license file”, but Apache is a bit more detailed and has a bit more on patent clause.
- GPL can be summarized into 2 provisions: “You have to share the source code alongside compiled executables” (.exe for windows), and “if your executables compile with GPL code, then the rest of the code that compiles also has to be GPL licensed” (Which is why some call it a viral license)
- However, the loophole with GPL code is that if you are running anything with GPL code running on a server, you are not distributing the executable if you are only accessing it through a web page, so you don’t have to share the source code, and AGPL closes that loophole by saying “You still have to share the source code for AGPL licensed programs if you are using it as a service”
- Companies hate GPL code since they can’t legally keep modified software close sourced, which means that Facebook won’t be able to develop proprietary extensions for AGPL licensed software like Lemmy or Mastodon.
To confirm: at all companies I worked at, using GPL software was banned in all circumstances. I understand that some GPL variants allow some stuff in some cases; but the legal teams everywhere I worked did not consider those sufficient to take a risk, so all GPL was banned, always.
I remember once saying “this sounds like the exact use case MongoDB was created for” while working for Apple, and a more senior engineer cry-laughed about it. Turns out Postgres has a surprising amount of mature JSON storage and querying features (I think some are provided through extensions), so that’s where we went instead.