A copyleft licence states that any code that incorporates works under a copyleft licence (“derived work”) needs to be licensed under same licence. Their purpose is to make everyone contribute back to the community, as in the “Free as in Freedom” phrase by RMS. This idea looks very good and is in fact a very good idea to promote free and open source software.
But people do need to eat, drink, and have needs. They also need money to survive. And while technically it is possible to have commercial open source software under most popular copyleft licence, the GNU GPL, it will be too easy to pirate.
Instead, commercials and other open source project who more open licenses (for example, the Apache Software Foundation) cannot reuse code under copyleft.
And how many of those that change their licence to Copyleft to incorporate Copyleft code? Almost none. They just completely reinvent it.
And that’s the problem. Big problem.
Instead of encouraging sharing, I find that copyleft licenses encourage reinventing the wheel.
Now, the pro-GPL people will argue that GPL saves your work from being used commercially. Answer me, have any projects in FFmpeg Hall of Shame been sued? No, and not likely ever will.
Either people will reinvent the wheel, or they don’t care and use the code anyway. So please, if you can, don’t use GPL. Even LGPL is better, but Apache or MIT licence is the best.