L is for Linux, A is for Apache, M is for MySQL, and P is for PHP/Python/Perl
Open source applications such as WordPress (functioning under a GPL license) are gaining a lot of fans and followers in the last few years. After all, there is an inherent goodness to projects that are free enough to quote Mark Pilgrim. Thanks to increasingly polished and stable applications like Linux, MySQL, Apache, PHP, and various other products operating under some form of open source license, people are also becoming more comfortable using these applications. They’re no longer just for Dew Drinkers.
But everything comes with a price, and open source is no different. So today I want to talk about the concept of open source, GPL, and free…as in beer.
Free, as in Beer
First, to clarify a misconception: open source is not free source. Open source has to do with whether the source code can be modified or distributed without having to get specialized permission from the originator of the code–but the person who wrote it is free to charge for it.
Free software, on the other hand, is software that supports what are known as the four freedoms: a person can use the program, modify it, copy, or distribute it, freely. In addition, if a person or organization creates a derivation of the original software, they can also attach a more restrictive license to the derived product, or charge for it, or even encapsulate their own modifications under a closed source copyright. The BSD license, so called because much of its use is in relation to the BSD operating systems such as FreeBSD or NetBSD, is an example of a four freedom or 4F type of license. So is the Apache license.
However, there are licenses that go beyond even the free software license when it comes to ensuring future openness of derivations, and these are known as copyleft free software licenses. They not only provide support for the four freedoms, but also demand that any derivation of the work also carry the same type of license. This means that the derived work must be freely available, can be modified, and, in turn distributed and new distributions can never have a more restrictive license. The GNU General Public License (GPL) is just such a license, and applications such as Linux and WordPress are GPL software.
Does a GPL license sound like a sucker bet? I mean, why would any commercial organization use GPL source? How can you make money?
Easy–by adding value on top of the core functionality of the open source application, while respecting the GPL that governs the source, itself.
MySQL supports a dual license; there is the GPL licensed version of MySQL that can be freely downloaded, and used within any application. However, a stipulation of the license is that whatever application uses the MySQL must also abide by the GPL license agreement and be freely distributable and open. If the organization doesn’t want to share their source, then they can buy a nice commercial license. This ‘dual license citizenship’, if you will, is one of the most brilliant I know of for bringing to market a product commercially while still keeping the product source open.
Linux is also GPL source, and there are many variations of Linux you can choose from on the market. Yet for all the freedoms associated with the license, there are several companies who have become very successful with Linux as their core product(which has, unfortunately, attracted the attention of SCO, otherwise known as the Scummy Crappy Organization). These companies honor the license by providing access to the source for the version of Linux they package, while making money by adding all sorts of bells and whistles, customer support, and nice installation CDs and other software packaged with the operating system.
Of course, companies don’t have to necessarily make the GPL controlled source easily available. Before April I could download Redhat’s source directly. However, recently the company made a statement that you can’t get the Redhat code directly. Instead, we can download and install the Redhat style of Linux through the Fedora Project. Basically what the company is saying is here’s the Linux–but no implied support that comes with the Redhat name. In addition, the FedoraLinux is ‘cutting edge’; in hacker terms, this means ‘use at your own risk, but don’t come crying to us if you trash your computer’.
There are no limitations on Fedora–use it however you want, whenever you want, and on as many machines as you want; but it’s not an ‘official’ Redhat release, which means you can’t count on company support, and any of the goodies they package with the commercial product aren’t packaged with Fedora.
(If you become miffed at Redhat for making this move–and some people have–there’s another distribution or two of Linux from which you can choose. For instance, Debian is one of the most popular and community supported versions of Linux.)
Regardless of company support or not, the key fact on GPL products is that the source be available for copy, distribution, modification, and use, and this openness persists forever. And a day. That’s why Mark Pilgrim writes about WordPress:
WordPress is Free Software. Its rules will never change. In the event that the WordPress community disbands and development stops, a new community can form around the orphaned code. It’s happened once already. In the extremely unlikely event that every single contributor (including every contributor to the original b2) agrees to relicense the code under a more restrictive license, I can still fork the current GPL-licensed code and start a new community around it. There is always a path forward. There are no dead ends.
No dead ends. And free. Free…as in beer.
Not really free
Stolen from my friend Farrago’s uniqueBeer art collectionFree…as in beer. What’s not to like? However, what applies to the source, does not apply to the people behind the source. Never confuse the two, because if you start treating the community behind the GPL software as ‘free…as in beer’, don’t be surprised if you find yourself and your software without that community someday.
As I watched Movable Type people move to WordPress, not to mention users of other software, I noticed that most people were friendly and interested and appreciative of any help given, and even generous with the WordPress development effort. But not all, and that’s a risk.
The advantage of using a commercial product is that you can expect a certain level of support for the product, and that includes, at times, taking heat when you make mistakes, or make a sudden change in direction in where the product is going.
I wrote a while back about Oracle’s ‘bite the bullet’ moment, when the company changed the underlying architecture between versions 5.0 and 6.0 and the flack the company took because of it. However, all Oracle could do was say, “Yes, we knew this hurt you all, but we had to make this change to ensure the product is viable in the future. We’re sorry.” What the company could not say was, “Well, don’t like it? Stuff it!” As it was, the company barely survived–not allowing their customers to vent would have been a disastor.
There’s an implication that you can’t ‘vent’ with open source, or should I say ‘free’ source, applications because, after all, you’re only getting what you pay for, and you’re not playing for the application. There’s also a risk that if you vent too much, the developers will say, “Well, don’t like it? Stuff it!”, and you’re out of a support and development team.
Therein lies the hidden cost to free source: you can’t expect the same level of support, or the same level of abstration of objectivity with a free source application that you can with one bought and paid for in cold, hard cash. Where the latter is a transaction, and therefore a formal relationship is established between you and the organization providing the application; the former is a some nice people providing neat software for thousands of their closest friends.
Donations, rather than clarifying the roles between developer and user just muddy them up even further. When Six Apart released Movable Type 3.0 and the new license, almost everyone who was critical of the new license prefaced their remarks with, “I donated to Six Apart for the use of Movable Type”. Donations add a monetary element to the relationship between organization and user, but it’s not formalized as a fee would be. What the donation buys is also widely open to interpretation: some people consider a donation to be nothing more than a thank you gift, and others think that donating to an open source developer makes them into a form of serf.
The source may be free, and you may not pay for it, but you still get frustrated. If you’re using version 1.0 of the product and upgrade to version 2.0 and it breaks half your site, you’re going to be unhappy. If you can’t find the documentation you need to use the tool properly, you’re going to be unhappy. And if you find out that the reason your site is broken is that the developers made underlying changes in the functions you use, without notice, you’re going to be very unhappy.
Free source or no, there are certain things you can’t do with a product and maintain any form of credibilty with your customers–yes customers–moving forward.
Different realm, different coin
Mature open source environments such as that in which Apache operates know that you have to maintain credibility in your product if you want people to continue to use it. When this organization made the move from Apache 1.3 to 2.0, they did so with a great number of warnings about what you can expect if you upgrade. In addition, tool developers like PHP also issued a number of warnings about which of their tools was compatible with what version of the web server. Because of some of these issues, many sites, including my own, still operate under 1.3, and the Apache organization still maintains an active thread in support of the 1.3 server.
If Apache had decided, instead, to make the move to 2.0 with a minimum of warning, and then just drop the 1.3 branch in a few months, the organization’s credibility would have suffered. Since, in come ways, the coin of the realm in the open source movement is both credibility and respect, there is a degree of accountability even with ‘free software’. There is–or the application joins the tens of thousands of unused and barely known open source software applications that litter the Internet.
But Apache has gone beyond the early days of being an open source application, and is organized enough now that no one person is responsible for it’s maintenance or development. In addition, the organization also acts as a buffer between the developers and the users, so that we can rant and rave about it without key people being hurt or offended and leaving in a huff; leaving you with your now unsupported software tied around your ankles like a girdle who’s elastic has snapped.
The same can be said for Linux, and MySQL’s commercial roots provides enough abstration (not to mention that it, too, is now widely used). As for PHP or Python or Perl or any of the other programming languages that are open, these are so common now that people bitching about them are more gnats in a swamp than anything seriously annoying.
Commercial applications have a monetary impartiality, and big open source efforts have density. That just leaves the smaller open source applications that have achieved some or even a great deal of success. Applications like WordPress.
Get Tough, Baby
When I first went to WordPress over a month ago, I went out on the support lists like a plague. I pushed them on everything from delivery schedules to coordination of documentation. They must have thought I was a platinum bitch, and in some ways I was. But I also knew that if there was ever an mass exodus to WordPress, the friendly atmosphere in which the WordPress organization has been maintained to this point, was going to be stressed and strained.
At the time, I had a feeling that there might be some move to WordPress because of TypeKey, and the lateness of Movable Type 3.0, not to mention the problems we had with comment spammers. In addition, the time felt ripe for change–we’d about sucked the innovation out of Movable Type, and more than a few of us were frustrated how our code was lost with each new implementation of the product. There are a whole lot of tweakers among us, but you can only tweak so far with closed source.
Based on all this, I knew that it was only a matter of time before the numbers flocking to one of the more popular GPL-licensed weblog tools began to change the dynamic in which this project operated. I didn’t expect the push that the organization would get from Movable Type’s new license strategy — not to mention being slashdotted twice in one week–an event that has finally kicked the WordPress server down to its knees.
You might say that in a GPL world, success isn’t always a blessing.
(Slashdot is worse than a Denial of Service (DOS) attack at times — it’s comparable to someone making a mistake on the ad for your house, listing it at 35,000 instead of 335,000 and then you watch as the resultant mass coming to the open house tears your home down around your head. But the good news is: If the house survives, there might be a buyer in that mess of humanity.)
The last few days when I went out on the support lists, I hit it, again, like a plague; but this time it had nothing to do with the future of WordPress, and everything to do with my own frustrations migrating from 1.02 to 1.2. Without complete plugin documentation, incorrect magic quote management, and especially rumors of deprecated or broken functions that aren’t documented, the migration process from 1.02 to 1.2 has been painful–a pain not shared by new users who are just starting with 1.2. Which of course, only adds to the sense of umbrage.
But at the same time, I also have to remember: this is free source. I didn’t have to pay. The project won’t die. It’s supported by people who donate their time for development, documentation, and even money to support the servers. I really like the software in spite of the current glitches.
But I still feel frustrated.
What’s a growing free source application to do?
Matt and the other WordPress developers must be dazed by all the new users and attention, and they deserve the spotlight. But the spotlight, just as with free source, comes with hidden costs: there are too many users of WordPress, now, for it to continue to be a small intimate open source development effort. If WordPress is going to continue to succeed, things are going to have to change, and the development team are going to have to adapt. The easy going environment in which they’ve operated to this point won’t survive the numbers that have moved, and will continue to move, to WP. It’s no longer just about the free source, the code.
The keys to a successful open source software effort can’t be found in lines of code or pretty screens; it exists in the relationship between those that create the source and those that use it.