Which license is good for what purpose(s) and under what condition(s)?
Exactly this. It really depends on the goals of the project. For example, if you’re trying to establish some standard where the most widespread possible use/support is the goal (because in the grand scheme of things the goal is to replace a proprietary standard), then a permissive license (BSD and friends) is appropriate. If the code itself is the more important thing and you want to protect it from being appropriated/exploited by proprietary software, then a copyleft license (GPL and friends) is appropriate. If the latter and it’s a web app and you want to protect it from other servers/services as well, then the AGPL is appropriate. Sometimes (configuration, “just data”, and so on) the whole idea of copyright restrictions is silly and counter-productive, so one of the “closest to public domain as is legally possible” (0BSD, CC0, etc) “unlicenses” is appropriate.
Exactly this. It really depends on the goals of the project. For example, if you’re trying to establish some standard where the most widespread possible use/support is the goal (because in the grand scheme of things the goal is to replace a proprietary standard), then a permissive license (BSD and friends) is appropriate. If the code itself is the more important thing and you want to protect it from being appropriated/exploited by proprietary software, then a copyleft license (GPL and friends) is appropriate. If the latter and it’s a web app and you want to protect it from other servers/services as well, then the AGPL is appropriate. Sometimes (configuration, “just data”, and so on) the whole idea of copyright restrictions is silly and counter-productive, so one of the “closest to public domain as is legally possible” (0BSD, CC0, etc) “unlicenses” is appropriate.