If you are a user of WordPress and a user of the Thesis Theme then you really to check out the remarkable discussion between Matt Mullenweg, head honcho of WordPress, and Chris Pearson, author of Thesis which took place on July 14 and was ably refereed by Andrew Warner.
I have great respect for both the antagonists, both acutely intelligent and commercially aware, but very different in style: Chris is fiery, passionate and arrogant while Matt is cool, thoughtful and calculated. And Matt’s business is probably worth at least 100 times Chris’s business so the match is very far from equal in terms of the resources and support each can bring to the table.
Both have made great contribution to software that I use to support my clients: Matt with WordPress, and Chris with the Thesis Theme, so I really would like these guys to get on well…
How The GNU Public License Works
The debate certainly opened my eyes wider regarding the GPL (GNU Public Licence). On initial reading it seems pretty fair and reasonable and the consequences tend to benefit the developers of software and the user community at large. So it sounds pretty good. This how it breaks down:
You are free to copy existing GPL software, amend, distribute and charge for that code as long as pass the same rights on with the distribution of the amended product.
From the developer perspective, it sounds fair: you get some code for free, you add to it to make it a bit better, and anyone else is free to do the same.
This is a bit like the work of the scientific community with the result being a growing, ever improving, FREE body of knowledge; except in this case the knowledge is encapsulated as software.
So far, so good, and hence you might ask: why don’t we develop all software this way?
Well the reason is… money. Or more accurately, GETTING PAID for WORK DONE. Let me elaborate.
In the case where the developer takes an existing piece of works and improves it, the GNU Public License makes perfect sense. However its rationale breaks down for me in other scenarios, specifically where original works are concerned.
Non Derivative Works
Let’s say I build a piece of non GPL software product from scratch that has a lot of business value to my customers. I sell that product to my clients for $200 and they use it and are happy. And then a few of my customers would like the product made available as a WordPress plugin so I add the few lines of code necessary to interact with WordPress.
The work is in no way a derivative of WordPress: it just happens to be able to be called from WordPress. However, due to WordPress’s plugin listing requirements I am obliged to make my WordPress Plugin licensed under the GNU Public License. No big deal you might say, but this is how the GPL works in practice…
The Problem With The GNU Public License
1. I can charge money for the software product(that bit is not a problem, but it is coming soon)
2. The person who buys it can also legally sell it and undercut my price (that’s a problem)
3. Another person who buys it can legally put the software on a free download site (and that’s an even bigger problem)
So my potential customers can either get my product from me for $200 (which was what I sold it for when it was not wrapped as a WordPress Plugin) or for free from a download site. Which are they going to choose?
GPL Software is Effectively Free (Zero Cost) Software
The GNU Public License has made my software product zero cost: I can only get customers to buy it from me if I offer additional services such as upgrades and support. And in reality, they are not buying the product, what they are in fact doing is buying support. Now, if I were happy to hire, train, motivate a large team of support staff that would be fine but let’s just say I don’t want to make money through running a large support team. Maybe my product is pretty good, easy to use and my clients don’t need to call often so I can hardly sell them expensive support contracts since they do not need them.
A few years ago I developed some software for a banking client and after I had completed they gave me a support contract for $800 monthly retainer for up to 4 hours support. After the initial six months they decided not to renew the retainer because they had not called me once. The software worked just fine without support.
Support and Services Are Not Always Viable
Now the support model may work if your are continually updating the software with new features but if the software is more narrowly focussed and simply does the job well then the GNU Public License does not offer the developer a way to get remunerated for the work in the same the way an author gets paid for their original creative works. This indicates that some software is just not suited to run under GPL if you want to get paid for your efforts.
Maybe this suggests that only buggy, difficult-to-use software that needs lots of support is ideal for GNU Public Licensing?
Except that’s not true, the multiple eyes that review and debug GPL code probably means it is of higher quality than proprietary software: after all, as Eric Steven Raymond, of ambassador of open source, proclaimed “given enough eyeballs, all bugs are shallow”.
Sometimes I want to give free code to the WordPress Community; other times I don’t, because I have bills to pay, and perhaps sometimes, I have just worked too darn hard, and thought too much about the problem, to give it all away for nothing before I have had a chance to get something back
The problem remains: how to make money from GPL software? And just to be clear: making money from code is not a bad thing: even developers have families to feed.
How To Make Money From GPL Software with WordPress Plugins
The short answer is you can’t. At least not directly from selling fully GPL code. But the WordPress Plugin guidelines only require the plugin to be GPLv2 compatible which means you can license your plugin under for the GNU Lesser General Public License (LGPL) version 3 which allows you to link to modules that are not fully GPLv3 licensed. [For more detailed information check out the GPL Compatiability Matrix. Good luck, you will need it when you get there.]
So we have an out. What we can do is follow Matt’s Mullenweg’s example with his Akismet plugin. Develop your a proprietary non GPL service hosted on another server and create a LGPL WordPress plugin that calls that service. We are then back to good old client server with a GPL client and a proprietary server. Hosting the clever bit of your plugin on your own server means that it is outside the GPL and hence you can protect your investment.
And if this circumvention of the full GPL is good enough for Matt then it is got to be good enough for all other WordPress Plugin Developers.
You can charge your customers for each use, a monthly charge or whatever, without risk of your code being copied(stolen), repackaged and resold as would be the case under GPL.
And when you have paid all your bills, cleared the mortgage, you can then license it under the GPL, and let others improve the code.
Back To Matt and Chris
So where does that leave us with Matt and Chris? Chris wrote the Thesis Theme that uses WordPress as the underlying platform. Let’s says 95% of the code is original and that Chris’s model of “how to build a website is overlaid on top of WordPress” is unique and hence is dependent on WordPress but not a derivative of WordPress (A 5% overlap cannot be rationally described as a derivative) through there is a good case to be made by Mark Jaquith that all WordPress Themes are a derivative of WordPress.
The bottom line is that the mere fact that WordPress causes the Thesis theme to run is sufficient for the GPL to be invoked (should Chris wish to distribute Thesis and he does given he wants to make some money). Therefore as WordPress is under the GNU Public License then Thesis needs to be GPL too (but that’s only if you believe in the GPL is enforceable)
Chris has said that since he is the creator of Thesis then he should not be dictated to by WordPress (and the GPL) and forced to license his code under their terms and not his. But that is not how the GPL is intended to operate.
Judging by Chris’s comments about the ‘inorganic nature’ of GPL in his otherwise organic business, he simply feels that the GPL is unenforceable because it removes protection of the rights of the creator of a piece of original work.
Maybe from Chris’s perspective, the “freedom” that GPL offers is the freedom for others to steal his work, and that is a freedom he does not want.
Rather than GPL being untested in court because it is solid (other than in Germany and in a case where significant copying of Linux kernel code had taken place so the judgment was clear), I think the converse is true: nobody has gone to court because they are looking at enormous legal and expert witness fees with little idea of how the judgement will go.
Do you spend $10 million with a 50% chance of success or settle out of court for $1 million – easy decision? You need a stubborn nature and deep pockets to play that game. But then Chris has a stubborn nature and Matt has deep pockets so maybe there will be a day in court to get a judgment on GPL (only for another judge to overturn the judgement on appeal 6 months later)
Basically, if push comes to shove, then rather than go to court, I think Chris should move Thesis under GPL as a hard headed business decision to limit the risk to his business, help heal the wound in the WordPress community, and let him focus his attention on making Thesis even better.
The whole issue is one enormous distraction right now and is consuming too much energy that could be put into making WordPress and Thesis even better.
The GPL issue is simply not a good enough cause for Chris to risk losing his business over. It might be for him, on a point of principle, but it is not for these of us who are members of both the WordPress and Thesis communities.