The GNU GPL is the software license that helped bring free and open source software to the mainstream. In recent years, however, the GPL's prominence has waned as more permissive licenses, like Apache, have taken its place. That begs the question: Does the GPL have a future, or is it a relic of free software's past? And how did the open source community come to this pass, anyway?
A Brief History of the GPL
The GNU General Public License, or GPL, was crucial to the emergence of free and open source software as we know it. As the first software license designed explicitly to require that source code remain freely available with an application, the GPL provided a legal framework for upholding the user and developer freedoms that the free software movement sought to protect starting in the mid-1980s.
The GPL became famous as the license that governed Richard Stallman's GNU operating system starting in 1986. It then became even more famous as the license adopted by Linus Torvalds for the Linux kernel in 1991.
Fast forward to the present, however, and it can be easy to forget just how central the GPL once was to the world of free and open source software. Today, dozens of other licenses are available for programmers who want to make the source code of their software open but don't want to use the GPL. Licenses like Apache, the MIT License and the BSD family of licenses are the most famous, but there are dozens of others (including my personal favorite, the WTFPL, whose full name I can't spell out here).
GPL in Decline
For years, folks who keep track of the popularity of free and open source software licenses have noted a clear decline in GPL use. The introduction in 2007 of the GPLv3, the latest update to the GPL, seemed to please the community, but the GPL is no longer the dominant license that it once was in the world of free and open source software.
Instead, the MIT License tops the list of most popular free and open source software licenses today. The GPL comes in second.
What's more, although the GPL is still beating the Apache license, it's worth noting that virtually all of the big-name open source projects that have appeared in the past decade have chosen Apache as their licensing scheme. (I'm thinking of Docker, Hadoop, Spark and TensorFlow, though I'm sure I'm forgetting some other examples of newish Apache-licensed platforms.)
Meanwhile, I'm at a loss to think of major open source projects of recent incarnation that have adopted the GPL.
Explaining the State of the GPL
What accounts for this state of affairs? Why is the GPL no longer the go-to software license for open source projects, despite its storied history?
That's a complex question and the answer surely involves several factors. One might be that today's developers don't remember how important the GPL was in making open source possible, and so it does not feature as prominently on their radar. Another might be a perception, fair or not, that the GPL actually stifles the creativity it was designed to protect because it places strict limits on the conditions under which software can be redistributed. Specifically, it requires that developers share the source code of any GPL-licensed application or a derivative of that application; being held to this standard may feel like the opposite of freedom for some developers.
Yet the most important reason for the decline of the GPL, I think, is simply that we're living in a new age of open source. Today, open source has become the "default" approach to software development, according to one study. For a developer or company, choosing to make your source code open source no longer signals a brave commitment to an innovative, ideologically driven mode of software distribution. Instead, open-sourcing your code (or some of it, at least), is just the thing you do. After all, even Microsoft is now riding the open source bandwagon.
Under these circumstances, new companies like Docker--or old companies that want to look like they are with the times--can't really avoid applying an open source license to their model. If they didn't, they'd not only look weird, but they might lose business. Third-party developers would be less likely to work with them, and prospective clients might worry about lock-in.
For these companies, permissive open source licenses like Apache provide an easy out. They're a way to brand yourself as an open source company without having to take as strong a stance about open source software as GPL adoption implies.
Sure, choosing the Apache license or most other permissive licenses requires that companies make the source code of their products publicly available, and that counts for something. But it doesn't signal ideological commitment to the ethos of the free and open source software movement. Nor does it place many restrictions on what partners or third-party developers can do with your code.
In short, the GPL's decline can be explained by the fact that choosing to join the open source ecosystem does not mean what it once did. Licenses other than the GPL offer an easy way for developers and companies to cultivate an open source image while avoiding the strong commitments required by the GPL.
If the GPL were still the only major open source licensing option around, it's hard to imagine open source software being so popular today. But, in an ironic way, the move away from the GPL is a reflection of just how successful the open source ecosystem has become: Open source is thriving so much that we no longer need the GPL.