Because the GPL restricts the freedom of anyone who incorporates your code.
Pick Apache or a BSD license, you have the same guarantees of access to the source code and you're not restricting the freedom of people using your code.
You have some guarantees of access to the present source code (and as jdjb points out, not necessarily), but you're certainly not guaranteed access to changes made in the future by that or other parties like the GPL does. That's the whole point of copyleft and why I prefer it, I don't want to worry if I'll be able to access the features and fixes that will be made by others or if I will be left in the dust. And fair's fair, if you benefited from the work made by others then it's only fair to them to benefit from yours.
Maybe I'm mistaken, but I have the feeling that many -of course, not all and I'm not saying that you do- think that their precious code is so amazing and it will give so much competitive advantage that they need to leave open the option for a closed source version that will make them rich, and that's why they defend "freer" licenses very passionately. Newsflash, it almost surely -like 99,99%- won't happen.
This is completely wrong. Purchasing a product that contains code licensed under the BSD license does not ensure you get access to the source (unmodified or otherwise). It is the biggest difference between the GPL and BSD license.
All the BSD license ensures is that if they distribute the code they have to retain things like author retribution.
The freedom to profit from code in the same way as the author. Oracle, for one, has done marvelous things in ensuring that their JVM is the only one that people use by GPLing it and convincing IBM to stop contributing to the more open Apache Harmony project. Additionally, the same enterprise can do things with MySQL that no other vendor can, again putting other entities at a distinct disadvantage. The GPL is very weaponizeable if you want to ensure competitors are always a step behind you.
I don't know about the JVM, but what you mention about MySQL has to do not strictly with the GPL but with it being dual licensed (GPL and propietary) and as a result many Linux distributions like Red Hat, OpenSUSE, Fedora and Arch decided to make MariaDB -which is only GPL, compatible with MySQL and has more features- the default and it's readily available in most -if not all- distros, Windows and Mac OS X. So I would take the part of "competitors always a step behind you" with a very big grain of salt.
How is Apache Harmony more open? Easier to get in extensions without going through all the committees? You can do that with a fork of the OpenJDK too, nothing in the GPL preventing that.
As for MySQL, I don't see how the existence of a proprietary version of MySQL is somehow the GPL's fault. The users would be even more at a disadvantage if the proprietary version was the only one that existed and there was no free version, so the existence of the GPL version is a net benefit for everyone.
Not that it's a particularly good idea to buy a proprietary license or even contribute code to Oracle. PostgreSQL will treat you much more fairly. It doesn't require copyright attribution from their contributors, it's governed by a 501(c)(3) charity in the US and a similar non-profit in the EU rather than a company that only looks out for itself.
There is nothing wrong with making a profit with software, but signing an expensive restrictive EULA for a database is just a bad deal, whether you're a small startup or a major corporation.
It doesn't even do that. I profit plenty from others' GPL-licensed effort. The difference is I don't feel entitled to restrict others from profiting from the effort that went into creating the combined work.
If your goal is simply to get your code used by other people and corporations, under virtually no restriction with what they do with it, then the GPL is not a good choice.
If your goal is to let others use your code for the greater benefit of everyone that uses your code, then the GPL enforces that (at least to the extent it can be reasonably enforced).
Incorrect. Because a lot of others can't use your code for greater benefit of everyone because it's GPL. Your code is open source, regardless of the derivative work. GPL is about forcing other developers' to release their code in order to use your code.
GPL is about ensuring that all users of the code, both developers and end users, receive the same freedoms that the authors of any derivative work had.
But just as the GPL author has the freedom to make their code available, another author should be able to choose not to make their own code available. Again, this has nothing to do with freedom, this has to do with imposing your personal beliefs on others.
Yes, the other author has the ability to choose to not open source their code. But they absolutely do not have the choice to not abide by whatever license was applied to the libraries and original works they are building from.
The freedoms awarded by the GPL are not intended for the authors of the derivative works but for everyone else. The restrictions in place only prevent the author of the derived work from restricting everyone else.
Lawyers pretty much freak out over it if there's even a hint of using GPL software in a product. Not so much for tools, etc, but they get pretty adamant about it in stuff that touches the product code (this is admittedly vague) in my experience. I won't touch the stuff for commercial use, personally. Not once in 10 years have I not been able to find a suitable non-GPL project that did the same thing as the GPL code to meet my needs. In my opinion, using GPL is a pretty solid way to stifle a project. YMMV.
Well it is pretty much copyright judo. As such, most copyright lawyers can't just apply boilerplate to it and call it a day. So for them it is easier to recommend to not touch it than try to get to grips with what it is actually trying to accomplish.
I don't pretend to understand the subtleties of the license. All I know is the lawyers say "don't use it" and if I see it, I move on. Many others do this as well, and it can't be good for those projects.
It's just not worth a conversation in every case I've run across.
But that's perfectly OK and working as intended. I mean, if you want to distribute a closed source product, then you're working against what the FSF and GPL were created for, and it's wise to stay away from them. Remember, free software doesn't measure its success by the number of corporations that choose their code to use in closed source products, but by the amount of freedom it gives to its users (not just the developers). Having corporations use GPL code in their products is great but not the main objective.
Why wouldn't everybody else?