An oft-touted benefit of the GNU Public License is that it forces organizations that use GPL code to republish their changes, so that improvements to open code can be shared. That sounds good, in principle.
According to Harald Welte, founder of the gpl-violations.org project, this clause in the GPL has never resulted in any useful code ever being returned to the community. (Thanks, HubertF)
That’s one person’s opinion and he’s talking specifically about embedded devices. If you look wider, the Linux kernel has had a huge number of contributions (xfs, jfs, various sorts of hardware support, etc); gcc’s web page mentions contributions from Analog Devices, IBM, Develer S.r.l., Wasabi, Apple and others; and so on. I’d hardly call any of those contributions useless. Whether it’s due to the GPL is of course arguable. What’s not arguable is that Linux has had much more success than the BSDs — but then the BSDs have had much more success than GNU Hurd, so it could be a question of management style rather than just the licence.
rahul is quite right.
Please consider that the BSD license allows for code to be used in commercial products, which can in turn be used to lock out people from the 4 basic freedoms – and I personally don’t want to see a free software product to be abused that way.
(BSD and MIT licenses have their use elsewhere BTW, eg. in reference implementations and research code).
Yes, the Linux kernel (and many other open source projects, some of which are under GPL and some not) have had corporate contributions of some sort.
However, the GPL requirement to contribute back code changes doesn’t seem to have made projects using the GPL more successful than those under other licenses that don’t require code change disclosure.
I think what you said about management style is much more the cause.