There's this site entitled Occupy GPL! that's been making the rounds lately. I don't know who's behind this thing — at least one comment on Hacker News smelled AstroTurf in the air — and I have some misgivings about the snide way it's presented. But the underlying points made have a germ of truth: the GPL isn't the only way to do open source, and we might have reached a point where the GPL does more harm than good for software as a whole.
First off, my take. I like the MIT family of licenses because they are about as direct and unpretentious as they get. Use what you like; use it any way you like; just give credit where it's due, and nobody gets hurt.
I find the GPL to be well-intentioned, but while I use a hell of a lot of GPL-licensed software, I use it mostly as a user; I rarely use it as a developer. Part of this stems from the GPL being a creator of unintentional complexity. It doesn't free software so much as it simply shifts the burden of its restrictions. Again, it's good for users — although even there I have my long-term misgivings for reasons I'll go into some other time — but for programmers, it's a mixed bag, especially when the full implications of its use are not thoroughly hammered out.
The point of the GPL is to ensure that any changes to a given codebase are relicensed under the same terms, now and forever. In other words, its restrictions are an attempt to do something about the way software is always part and parcel of the moment of time it was written in. Very little of the software written 20 years ago (and I mean as it was 20 years ago, not with all the updates accrued since), barring the most trivial of applications, is going to be of any use today save as a historical curiosity. The world, and the software it uses, moves on, and the GPL ostensibly aids in keeping future software as free as present-day software, and allowing present-day software to be kept current without also locking it up.
I have a hard time coming up with a good counterargument to this particular aspect of the argument as I sit here. But such a stance comes at a cost, and that cost may well be the future adoptability of the software by others.
Here's what I mean. The GPL is not compatible with all modes of software development, or all business models for it. Not now, and certainly not in the future. If someone in the future looks at a piece of GPL code and decides not to invest effort in it because of the viral nature of the GPL, that's one less supporter for that project.
If that someone chooses instead to invest in an MIT-licensed project, they have no obligation to put the results back into public view — but they have at least as many practical incentives to do so as they do with a GPL-licensed project. Any changes they make, for one, might well break things that only someone on the outside with a fresh perspective would be able to know about, so why not have other people look at the work and get in on the game?
Historically, I can't think of very many examples of MIT-licensed projects of significance that withered because a) their original maintainers did not continue work on it and b) the project has since been folded wholly into a closed source project. If you can think of one, let me know.
The most valid reasons to use the GPL, as I see it, revolve around wanting to ensure that a project can continue to be worked on publicly no matter what its future provenance. That's a noble goal. But it's not the be-all and end-all of software maintainability, or usability.