The MIT license has been critiqued multiple times for its 'inability to protect' itself from becoming a part of something propreitary. At the same time some good sources (suckless.org) and some not so good ones (cat-v.org) have given the opinion that MIT is superior to GPL and similar copyleft licenses, but refused to give any explanations as to why. For the longest time this left me confused, but after thinking about this for a while I finally came to their reasoning and I couldn't agree more with it
cat-v.org lists GPL, LGPL, Apache Software License, MPL and CC as harmful, while listing ISC, MIT/X, BSD, CC0 and public domain as less harmful. For the purposes of simplicity, I'll be referring to all the copyleft licenses as GPL and to all the other free licenses as MIT
So, what are the differences between the two types of licenses? Well, one forces all modifications to also be made copyleft while the other licenses don't do that. That's their only difference and as I stated in the beginning of the text, many claim that that's the downside that leave MIT users vulnerable for their software to get included into propreitary software. And yes, that is correct, but think about it from this perspective: with GPL your software only gets adopted for GPL projects, while with MIT your project gets adopted for GPL projects, MIT projects, and propreitary projects. So your software gets added to more projects! Isn't that a benefit? Well, not so much you might say. "What if I make a project and it gets stolen and someone makes money off of it" - you might say. But if no changes are made to the program, nobody is going to take the paid version, at least in theory. And if there are changes made to the program, then either those changes are negative and they still don't get anything, or their changes are better and now that's your fault - and the mistake wasn't in licensing, no, it was in programming. Let's take at an another scenario - libraries. GPL was so bad with libraries they even had to make an exception for libraries just to get adopted and become popular. If you make a library and believe it's good, then it's better for the whole world to use your library then for only a small portion of the world. That makes the world a better place. And if propreitary software consists mostly out of MIT assets, isn't it better than if the company would write its own bloated code and waste time and effort on something that was already made and make the same thing, but worse? I want to live in a world where even propreitary software is cheap and somewhat high quality because it was made out of MIT assets, not in the world that I live now. By using GPL you hope to make propreitary software companies go bankrupt, by using MIT you choose to make propreitary software better and closer to MIT until it gets so close that paying for zero additional features becomes a joke. One focuses on destruction and war, the other focuses on cooperation and gradual improvement. For me, this choice is obvious