give back changes - they are happy to do it anyway, because they want those fixes in the next version that you release. And what is gained by keeping your competitors from using your program? You aren't suffering a financial loss, unless you are charging in a different way - such as for support. You aren't losing developers, because the competitors developers aren't going to work on your program for you just because it's GPL. I just don't see any way that the GPL license itself is going to drive more developers to your code.