It has never been a more exciting time to be a developer. Numerous open platforms exist in which to ply your trade and make a good living doing it. A platform’s user base grows as it matures, and inevitably gives birth to a thriving developer ecosystem supporting that platform, selling services into it, and when the platform is any good that ecosystem will turn into a marketplace. There has been an explosion of these ecosystems as evidenced by the success of the Apple App Store, Facebook, Twitter, Sales Force and Google Apps. In the last few years, WordPress has come into its own and has generated its own cottage industry for themes, plugins, and other add-on services.
What makes WordPress unique is that the platform itself is open sourced under the GNU General Public License v2. This license imposes itself on derivative works by insisting that they in turn be licensed under the GPLv2 if and when they are distributed to others. Generally, this poses no issues, and everyone releasing plugins and themes on the WordPress.org Extensions db has chosen to release their code under the GPL.
The Premium WordPress Theme and Plugin marketplace has largely adopted the GPLv2 for licensing their goods (at least the parts they are compelled to by the GPL, namely the PHP code). It should be noted that this doesn’t hinder their ability to sell their add-ons or to even limit access to the downloads by putting it behind a paywall and asking users to pay for access to it. The only limitation that is placed on the developer is that, underneath the GPL, you must release certain rights to the end user of the software. The rights given to users are the same the developer received with WordPress: the code can be forked, copied, modified and extended, provided that all derivative works are licensed under the GPL. The GPL was intended to be contagious and to protect the code by ensuring that it always remains free. In other words, it’s free to remain free.
This is in stark opposition to the MIT or BSD Licenses that generally state that you can use the source code for any purpose and with no impetus to release anything you make with the code under any license, much less the same one that they used. And if you think about it, this is real software freedom. And while no Open Source license is perfect, the GPLv2 especially has a number of gray areas, especially given that is couched in the technical language of binaries and source code – which are hard (but not impossible) to reconcile with interpreted scripting languages, such as PHP, Python and Ruby.
The recent debate swirling around the recent #thesiswp has caused me to examine my own relationship to the GPL, the WordPress community and the larger Open Source movement in general. Both sides of the debate have interesting arguments to make, and by and large I feel that the GPL, as interpreted by the core developers and contributors (the copyright holders), the WordPress Foundation (the trademark holders) and many others in the community, extends to Plugins and Themes.
Anyone who has done any serious WordPress development knows that themes and plugins are so intertwined with the WordPress core that saying that they don’t combine into a single unit at run time is laughable. You are constantly navigating between the Theme / functions.php, and the Plugin layers to get anything even moderately elaborate running on WordPress.
I should know. I work on K2, a free theme framework with over a half a million downloads, and have written 100s of plugins for myself and clients, and released a dozen of them. This is what makes WordPress such a great CMS to work with.
WordPress development requires the navigation and manipulation of numerous callback functions, function overrides, class extensions and the use of other PHP language constructs that all of the code turns into one hot mess. Have you ever debugged a typical WordPress request cycle? If you follow it all the way through, you’ll see it jump around between the Core, Theme, and Plugin layers and back again – and if you don’t step into the functions deep enough you won’t even see your plugins and theme in action – it just looks like all WordPress (yet your plugin and theme code will have run and contributed greatly to the final output of the page).
Which brings me to the matter of the GPL, and my own relationship to it. Given its flaws, I can say that my own, non-GPL incumbered, open source contributions will be released under the MIT License. Its short, to the point and strives more to be an open release of source code than a philosophical stance. This is a personal choice, and is one I came to have to talking with other developers (outside of our community) about the GPL, the further research I did in trying to understand both sides of the argument, and actually reading and rereading many of the different open source licenses to get a sense for how I interpreted what I read.
Don’t get me wrong, I think the GPL is fine, am grateful to the numerous software packages I love and use every day that are free to me because of the GPL, but when I want to make something truly free then one of the “non-Copyleft” licenses are just one of the better choices. All of my WordPress related contributions will continue to be released under the GPL license – by choice and by the wishes of the WordPress copyright holders (of which I am one).
As for #thesiswp, the debate will remain largely unsettled and unsettling to the WordPress community. Call it growing pains, call it mud slinging, call it anything you want. Even if the WordPress community stopped persuading “Anti-GPL” hold-outs to release under the GPL license, or if all of the hold-outs (most notably Chris Pearson creator of the Thesis theme) adopted the GPL on their own, nothing would change but their opinion of each other. And there in lies the paradox. They got chocolate in our GPL and we got GPL in their peanut butter.
And unlike some of the folks in this debate (and very much like others) I don’t feel that this particular Philosophical Reese Cup would be settled, nay! could be settled with a court case. A GPL battle would be a huge distraction for the community, and as I’ve stated previously, it would probably create a largely inefficient outcome for both parties – no matter who ‘wins’. Its unfortunate that there are clear GPL violations in the current Thesis codebase, since that changes the nature of any possible court case from being a test of the GPL to one of code “theft”, which begs the question: Can free code even be stolen?
And this is where my relationship to the GPL shifted. You see, the GPL builds upon copyright law and not contract law like End User License Agreements (EULAs) do. And even if you only take the GPL-inheritance definition at face value, you can see how this Copyleft license starts to resemble a EULA – in so far as they both pose some limitations. Obviously this comparison is a bit of a stretch given that there is ton of freedom afforded by the GPL – for both developer and user – and building your business on GPL code is a fine idea with a lot of perks, and when one of those perks is 20 Million+ users allowing limitations becomes part of the trade off.
I liken it to Apple’s Developer Agreement and the other great debate of our day, Apple v. Adobe. Does Apple, the platform creator/innovator, get to make up arbitrary rules and ask that all developers for their platforms play by those rules? Absolutely. And despite the drawbacks of their proprietary platform and the flaming bizzaro hoops you have to jump through to release on their platform, developers that are willing to play by the rules are making an absolute killing.
The WordPress marketplace for Premium Themes, Plugins, Services, Hosting, Consulting, and other add-on Services is growing every day and many companies, including the one owned by Mr. Pearson, are themselves making a killing. Most developers are willing to play by the rules of the GPL license, but since WordPress doesn’t control the distribution of paid add-ons, compliance has to be voluntary. If we give the corporate person Apple enough leeway to say: “Your agreement sucks, but I’ll comply in order to make cool stuff for people to buy” then why can’t we afford the same respect to the thousands of real people that are represented by the WordPress copyright?
Its seems to me to be easier to adopt the GPL and continue offering your products and services, than to publicly, and at many times antagonistically, defy the wishes of the WordPress copyright holders. That just seems like bad business with a side of disrespect.
Its a shame that the substance of this battle is so largely philosophical. Both sides are being asked to change their minds and give up their own personal principles to make each other happy, and that’s just not something humans are very good at doing.
P.S. – There are a number of great posts on both sides of the issues of this debate that I couldn’t be bothered linking to each and everyone of them inside of the post. Instead I offer you a collection of bookmarks I’ve been curating on this issue.