This is one of the big reasons I think that discussing "open source" is dangerous and tricky. It's not a binary, and there's no one monolith that decides what it is/it isn't. Even ignoring the traditional "FSF vs BSD" holy wars, there's plenty of depth. For example: is the JSON license[0] open source? It's certainly permissive enough, but lots of different groups have different interpretations as to why it isn't: the FSF[1] says it violates their freedom zero, that a user has the right to run a program as they want for any purpose; the OSI says it isn't because their licenses cannot discriminate around intent - quite literally, the OSI supports Evil here ;-)
I've released code under permissive licenses (Apache, BSD, and MPL that I remember off-hand), and at least one feature I know made its way into a commercial product. In those cases I simply didn't care because I didn't consider the code particularly novel, important, or special. It scratched my itch. Occasionally it scratched my employers itch, so I was already paid to write it, which was nice.
If I ever write code that I consider novel, important, or special, I plan to release it under AGPL3 - while you may think Google is overreacting on accident or to create FUD around it, the plain text of the license makes the intent exceptionally clear:
> public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.
This alone is enough to make the AGPL3 blacklisted anywhere that wants to keep their source closed: you may believe the courts would decide for the big corporation if push comes to shove, and you may even be right, but practical evidence shows that almost nobody wants to risk it.
Part of the problem here is that a generation of programmers seems to think that open source is all the same, so a license is something that you just whack to when your scaffolding tool suggests one. But in reality, talking about "open source" is useless at best and dangerously imprecise at worst, talking about licenses is the only way to get people on the same page.
> That definitely looks ugly on Mongo, implementing an API is such a fundamental part of software compatibility. Seems like the exact wrong way to go about it.
It did the trick for them, at least against AWS: as expected, they successfully forced the wire format to diverge after AWS launched DocumentDB. It also got them pulled from Debian, Fedora, and I don't know how many other distributions for being non-free. But hey, at that point, they were already a known quantity, so it probably won't hurt in the long run.
[0]: https://json.org/license.html
[1]: https://directory.fsf.org/wiki/License:JSON
[2]: https://opensource.org/osd