If there is one thing more predictable than a Goldman Sachs profit, it’s the annual witchhunt against the GPL by luminaries in the Open Source and related communities. The latest entrant is one Daniel Jalkut, founder of Red Sweater Software now owners of once (and still?) popular blog client MarsEdit (more on MarsEdit in my upcoming comparison against Blogo and other similar tools).
In a passionate post that drew a response from Matt Mullenweg (who, graciously, did not mimic Jack Nicholson: “I would rather that you just thanked me and went on your way!”), Jalkut lays out his objection:
Violating the GPL is easy. All you have to do is write some code, intermingle it with some GPL code, distribute a changed copy of the original, and refuse to share your contributions. Bam! You’re toast. Assuming the original authors discover your violation and decide to pursue a resolution.
Let us not spend too long pondering why Jalkut would consider it “toast” to become part of a community that shares code, and jump to his issue at hand:
Today, Matt Mullenweg of the WordPress project announced his lawyer-supported opinion that themes are partly covered by the GPL:
I reached out to the Software Freedom Law Center, the world’s preeminent experts on the GPL, which spent time with WordPress’s code, community, and provided us with an official legal opinion. One sentence summary: PHP in WordPress themes must be GPL, artwork and CSS may be but are not required.
[italics are mine]
And this is a problem, because, it “stifles participation” (since we are skipping lightly over details, we will also, at this point, skip lightly over the detail that WordPress draws participation in the form of hundreds of plugins and themes). Jalkut divides developers into three baskets: the commercial/closed ones, the “liberal” license ones (i.e., Apache/BSD/MIT/etc), and those who use the GPL. His argument then is that only the “liberal” license is attractive to all three camps. The crux of it:
I know what some of the GPL-enthusiasts are thinking now: “leeches don’t count as community.” Many GPL developers take comfort in the fact that their hard work can’t be quietly taken and incorporated into a commercial product, without any payback of time or money to the original project. But you’re piloting an open source project, and the first step of building a community is to get people in the door. Liberal licenses? Whoo-eee do they ever get people in the door.
If you operate from the presumption that great developers love to build great projects, the first step in any successful open source project is to get as many great developers in the door as possible.
The premise is at best weak. Why not presume that the first step is to get as much great code in the door as possible? With such an assumption, the GPL’s strength is made immediately obvious. In order to empirically substantiate his line of reasoning, Jalkut offers some examples: WebKit is used by Safari and Chrome. Subversion’s license is taken advantage of by Sofa who develop and offer Versions, a Mac Subversion client. On the other hand, offers Jalkut, GPL version control alternatives like Git, Mercurial and Bazaar are “[un]likely to inspire development of a Versions-caliber client”.
The last example should alert Jalkut to the real issue at hand. Versions is an application that sells for a hefty €39. I would translate that to USD except that by the time I post this, the USD is likely to have fallen farther. That’s a lot of money for a (admittedly really slick looking) SCM client. In light of this, what is one to make of Jalkut’s contention that Sofa, by selling their “award-winning client application” for this handsome price, is “contrib[uting] value to the community”? This is a very strange notion of contributing to a community!
The example also illustrates, in my opinion, the more substantial problem with Jalkut’s critique. Sofa is a great example of a commercial/closed for-profit developer leveraging the free beer nature of non-GPL Open Source, and not an example of an Open Source universe that spreads and grows “by getting as many developers in the door as possible”. Each commercial application is the dead end of the tree of evolution of that code, for nobody else can take it further.
What Jalkut considers “really free”, the “liberal” open source model, for the reasons outlined in the previous two paragraphs, exactly illustrates Richard Stallman’s differentiation between free beer (Subversion is Sofa’s free beer) and free speech. Is this not a well understood problem in game theory. The “freer” (the operative question is: “free” for whom?) open source model is, at best, the equivalent of game theory’s doves or individuals who are entire altruistic, while the GPL is a much more successful “tit for tat” (or “reciprocal altruism”) strategy.
No doubt there is the criticism that open source and commercial collaboration is not zero sum. Even allowing for that, it remains that open source, in this view, lives at the mercy of commercial charity and is fundamentally exploited.
Or, just ask yourself this simple question: you are a great developer who wants to share his code with others. Would you share it with someone who will in turn share his or her code with the community or with someone who not only is unwilling to share his or her changes (to the community’s code!), but in that very process wishes to profit from your effort? It seems a no-brainer to me.
In his response, Matt Mullenweg, author of WordPress, points to the obvious (the success of WordPress, the strength of the theme/plugin base, and the negative effects of closed licenses of derived products), and offers this insight:
GPL was a license written for a different time and on the web it’s possible to find a thousand loopholes and ways around it (see: software as a service) but if you keep in mind the core freedoms and principals — share and share alike — they provide excellent guidelines for building a rich community and ecosystem: the two things that ultimately have far more to do with product success than the license. (Competitors to WP have switched to the GPL from proprietary licenses with basically no effect. License does not equal community, it’s a lot harder than that.)
And points out the fundamental error (“free for whom?”, as I ask above, before I read Matt’s post):
But more importantly, Mr Jalkut conflates what he perceives as his freedom as a developer with freedom from a user’s point of view. The things the GPL “takes away” from him, like being able to license his derivatives under a more restrictive license, are in fact protecting the freedoms of the users of his code.
In the next post, I will tackle John Gruber’s misunderstanding of Mullenweg.
Update: My thoughts on Gruber’s post are here.