Context:
Permissive licenses (commonly referred to as “cuck licenses”) like the MIT license allow others to modify your software and release it under an unfree license. Copyleft licenses (like the Gnu General Public License) mandate that all derivative works remain free.
Andrew Tanenbaum developed MINIX, a modular operating system kernel. Intel went ahead and used it to build Management Engine, arguably one of the most widespread and invasive pieces of malware in the world, without even as much as telling him. There’s nothing Tanenbaum could do, since the MIT license allows this.
Erik Andersen is one of the developers of Busybox, a minimal implementation of that’s suited for embedded systems. Many companies tried to steal his code and distribute it with their unfree products, but since it’s protected under the GPL, Busybox developers were able to sue them and gain some money in the process.
Interestingly enough, Tanenbaum doesn’t seem to mind what intel did. But there are some examples out there of people regretting releasing their work under a permissive license.
Can’t you just publish the work under the GPL license? I have no idea of programming, maybe this is a dumb question.
The problem is, that would limit my own option to make a version of the software and sell it under a more limited license in the future. Whomever I sell it to then has the right to go ahead and redistribute it, competing with me. Sure, my current, highly niche code already carries that risk, but the MIT license doesn’t stop me from releasing a modified version I may write that is more valuable as software, and then protecting that release with other licensing terms.
Nope. As the author you’re free to license your stuff however you want. You can use 10 different licenses for 10 clients if you want. You could write a custom version of your application and give a non-free license to a specific client if you want.
It really depends. If the contract gives ownership of the work created to the purchaser, he has no rights to it whatsoever. Moreover, trying to do a clean room implementation of your own code is almost impossible without help. A permissive license would give the purchaser unlimited use of the product, including resale while still allowing the producer unlimited use, as well. If the contract is written correctly, the producer might even retain ownership, with the right to use different licenses, while the purchaser would have few or no restrictions.
If someone is paying you to write code, they have some say in the contract about how it is licensed. You could be upfront about only doing GPL, and they could be upfront about saying no. But if you try to do it after the fact, that’s a violation of the contract.