Getting Pretty Lonely

July 2nd, 2009

This very post is delivered to your browser or news reader by the famous and fabulous WordPress blogging system. In my work as the developer of MarsEdit, I am exposed to countless blogging options, each with its own strengths and weaknesses. And yet, I stick with WordPress because it strikes a balance of power and ease of use which feels comfortable to me. Not to mention that Joseph Scott and others are tirelessly working to improve its API.

WordPress is licensed under the terms of the Gnu Public License (GPL) which, in a nutshell, stipulates that you are free to use the software however you like, but if you make changes and distribute those changes, then you must share those changes under the same terms. This simple, radical restriction means that you are prohibited from taking a GPL project and incorporating it with a closed-source project.

Violating The GPL

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.

Once a violation occurs, it might be settled privately, or could escalate to legal court procedures. But the most obvious form of resolution is for the author of the changes to release their code to the public under the terms of the GPL.

Depending on how much code you “mixed” with the GPL code, this could mean only a small portion, or it could mean the entire source code of your project. This so-called “viral nature” of GPL is what scares the bejeezus out of companies, large and small, who fear the consequences of having to give up their own intellectual property to the public.

The terms of the GPL sound pretty simple at first read, but due in part to the epic consequences of a violation, there has been a great deal of debate and uncertainty about what legally constitutes a violation. Most of the debate seems to boil down to two questions:

  1. What counts as a change to the original product?
  2. What counts as distribution of those changes?

If you can legally justify that your additions to a GPL project either don’t change or derive from the original product, or haven’t technically been distributed, then you are not subject to the restrictive terms of the license.

Take GIMP, the popular GNU-licensed image editing application. The application supports plugins, analogous to the types of plugins you might find for the commercial, closed-source application Photoshop. A savvy developer may argue that a plugin doesn’t meet the criteria of changing the original application, because the original application still runs in its unaltered condition whether the plugin is there or not.

But promoters of the GPL take the position that plugins, by nature of being loaded into the same code space as other GPL code, do constitute a modification of the original, and are therefore subject to the terms of the GPL. As far as I know this is not a question that has been well-tested in courts.

Let me take a moment to make this abundantly clear: I respect the rights of authors to license their software under whatever terms they choose, including the GPL. In my opinion, all the legal mumbo jumbo ceases to matter once the original author’s intentions are made clear. So if the author of GPL-licensed code clarifies to me that it cannot be run on Sundays, then their GPL means it cannot be run on Sundays. But this is one of the problems with the GPL: its terms are not often understood, even by the authors of GPL-licensed code.

WordPress Themes & Plugins

WordPress supports two explicit forms of extension, each of which may affect the appearance and functionality of the product. Themes tend to work as a “skin” for the appearance of a blog, while plugins tend to introduce completely new features. Since plugins in WordPress are analogous to GIMP or Photoshop plugins, it would stand to reason that they would also be covered by the terms of the GPL. But what about themes?

Themes have been controversial in the WordPress community, as a few commercial business models have sprung up to take advantage of bloggers’ desires for high quality themes at an affordable price. One approach is to distribute “free” themes that contains commercial ads. So you might stumble upon the perfect theme for your blog, only to learn that the glaring “Brought to you by Hostess Cupcakes” line near the bottom of your page cannot be removed.

But the terms of the GPL, if themes are covered, would require that end users be granted the legal right to modify and redistribute their own copy of the theme. Zap the sponsorship, reupload to your site, and you’ve got a free, high quality theme with no ugly ads.

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.

If you’re starting with the understanding that WordPress itself is GPL, and WordPress plugins are GPL, then it’s not so much extra hay on the camel’s back, to also clarify that its themes are to some extent GPL. But it got me thinking again about my own blog, and about the restrictions the GPL imposes on the kinds of things I can do with the software that runs it.

GPL Stifles Participation

Now for the most controversial point of this article, where I suggest that the GPL does more to harm collaborative development than it does to help it.

For the purposes of this argument, let me reduce all the source code in the world down to three rough categories. I recognize I have omitted some classes of license here, but for the sake of argument, most projects fall into these camps:

  1. GPL code. Changes may be distributed only in other GPL products.
  2. Liberal-licensed code. (MIT/BSD/Apache/etc). Changes may be distributed anywhere. Appropriate origin-attribution may be required.
  3. Closed-source code. May be distributed only by the copyright owner and other explicit licensees.

Now, there are a few people in the world who, for political or philosophical reasons, will only participate in a GPL project. And for comparable yet opposite reasons, there are some who will only participate in commercial, closed-source projects. But I propose that the vast majority of developers will participate in any project that is advantageous to them.

So let’s imagine a representative, run-of-the-mill developer who is working on a project that falls into each of these three camps. If this developer is not radically committed to their own project’s license, they will naturally look to outside resources in order to bolster the success of their own work.

As the developer evaluates communities to participate in, they must evaluate the legal impact such participation will have on their own project. The closed source communities are, by definition uninviting to outsiders. GPL communities are open and embracing of other GPL developers, but generally off-putting to liberal-license and closed-license developers. Only the liberal-license communities are attractive to developers from all 3 camps.

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.

It’s Your Party

Yes, this is just me and my crazy theories. I haven’t done exhaustive research to prove that liberal-license communities thrive more than GPL communities. But the anecdotal examples are staggering. The very foundation of Mac OS X, the operating system through which I’m typing, is thanks to the liberally-licensed FreeBSD operating system.

Looking over to the right of my screen, I’m watching this sentence appear in a live web preview as I type, thanks to the WebKit project, whose liberal license makes it compatible with closed source projects such as Safari, as well as open source efforts such as Google’s Chromium project.

For years, the problem of a generic HTTP client library that runs on every major platform has been addressed by libcurl, whose liberal license has caused it to be embraced by countless companies and projects.

The popular Subversion source control system’s liberal license enabled Sofa, a commercial software business to contribute value to the community with its extremely polished, award-winning client application. Meanwhile, the newly popular distributed source control systems presents three major choices: git, Mercurial, and Bazaar. All are restricted by the GPL-license, and therefore none is likely to inspire development of a Versions-caliber client.

I’ve touched the tip of the iceberg, and yes I’ve neglected to mention some GPL success stories such as Linux, MySQL, and gcc. These communities have thrived to some extent because the passions of the GPL community are strong, but we can’t know whether their success is in spite of the restrictions their license places on participation by the broader developer community.

Speaking of GPL succeses, WordPress is itself an example of monumental success. All of its developers have something to be immensely proud of. But whenever I am reminded that WordPress is GPL, my passion for it takes a bit of a dive. I’m more comfortable with the true freedom of liberally-licensed products. If a liberally-licensed blog system of equal quality, ease of use, and popularity should appear, my loyalties to WordPress would not last long.

It’s your party, and you’re entitled to write the guest list. But take a look around the room: not as many folks as you’d hoped for? Liberally-licensed projects are booming. Speaking for myself, a developer who has been to all the parties, I’m much more likely to pass through the door that doesn’t read “GPL Only.”

128 Responses to “Getting Pretty Lonely”

  1. John C. Welch Says:

    Mike, you um, may have noticed that there’s more to BSD than just FreeBSD. OpenBSD. NetBSD. Etc.

    As well, seriously? CVS commits? You abandon “popularity” as your sole criteria, (because face it, that was so non-specific that you were losing), and now, you decide as your new sole measurement that CVS commits are all that count?

    Sigh. So since MS doesn’t use CVS, then no one develops any code whatsoever for any MS products, therefore Windows is a complete failure in the real world, and no one uses it. No one is using any OS at IBM but Linux and maybe one guy using AIX, because the public CVS commits approach zero. Fail.

    Oh wait…

    Let’s see…CVS as a sole criteria..so all SVN-based projects are also failures, because hey, they aren’t trackable on your one metric.

    All projects not on CVS don’t count in Chris’s world.

    This.Is.Not.A.Single.Counter.Issue.

    The issue here is simple:

    In your world, if it isn’t GPL-based, it’s a failure. Period, and you’ll keep changing measurement criteria until you find one that you like that shows only GPL-based projects are a success.

    A further problem for your attempt to wall off BSD from GPL is that there is no wall in reality. There’s a lot of GPL code in BSD, and a lot of BSD code in various versions of Linux. Why? Because the licenses are compatible, so you can mix and match both. So the truth is, there’s a GOB of cross-pollination between the two. OpenBSD is a bit different, but OpenBSD has a different set of criteria than the other BSDs and Linux: Security, Security, Security. Oh, did I mention Security? So you can probably get away more with looking at OpenBSD separately than the others, but the idea that you can completely separate the other BSD’s and Linux is insane.

    In addition, you offer no specifics on what you’re even talking about for CVS commits, which means you leave off the natural flattening on a mature project. For example, if you start writing new code, or start a new version of existing code, your CVS commits are going to be REALLY HIGH compared to a project that is not in active development. Does that mean your project is better?

    Of course not. It could be at a .1 version, buggy as a swamp, and completely unusable for more than a second or two. But because it’s new, or sexy, or both, it’s going to get more work done, hence your SCM commits go waaaay up. Even if in the end, a very small number of people directly use it.

    The other project could be used by millions, but because it’s not terribly sexy, or doesn’t need a lot of work, the SCM commit-count on it is going to be low.

    Using the commit count for a *single* SCM implementation as the sole criteria for saying something’s dying is exactly as valid as using downloads as the sole criteria: Not at all. I’m glad you say it’s a simple metric, because it is, but it’s only valid for one thing: CVS commits to FreeBSD. It is not, in any way, a valid measurement for the health of an entire *community*.

    Have I ever said that *BSD overall, discounting Apple, (because well, Apple, and their developer community, is a rather huge problem for your BSD IS TEH FAIL argument, and we’ve already clearly shattered your attempt to say Apple contributes nothing back, so I guess this is all you have left) is as big or as popular as Linux? No.

    What I have said is that the *BSD communties are doing well, by their own standards. They are not Linux, which is a good thing, because we already have Linux.

    But whatever. I’m sure you’re going to come back with yet another “statistic” that shows only GPL projects you like are successful, Apple has contributed nothing to any community anywhere, and all non-Linux OS’s are failures.

  2. Otto Says:

    On the contrary, WordPress being GPL is one of the primary reasons for its success, and the main reason that it gets so much development for it in terms of plugins and such. Without the GPL, somebody can simply steal your code, make it commercial, and make a profit on it.

    The so-called “liberal” licensing model you mention stifles innovation because such code gets adopted by closed source developers who then fail to contribute back to the project. Mac OSX is a prime example, when has Apple ever contributed back to the OS that they stole to build their own operating system around?

    True freedom doesn’t cover the freedom to get your work ripped off, IMO.

    Liberal-license communities are off-putting to many developers simply because they’re acting as unpaid coders, not getting anything back in exchange for their participation. With a GPL community, you get back improvements to the software, guaranteed. Your contributions are recompensed by others contributions.

    That said, I’ve released code under both models in the past. Code I don’t care actively about anymore gets a BSD style license, allowing anybody to do whatever they like with it. Code I do care about gets GPL-licensed, to ensure it remains open and free for all to use. Which code would you rather run?

  3. Daniel Jalkut Says:

    @Otto: Your argument stands on its own merit without resorting to inflammatory, inaccurate accusations of theft. It’s inappropriate to refer to commercialization of liberally-licensed code as “stealing.” I don’t know what compels you to use language like this but it weakens your argument and makes you sound like your arguments are politically motivated.

    Misidentifying a legal, licensed use of source code in a closed commercial product as “stealing” is not only disrespectful to the licensees who are doing nothing wrong, but to the original code authors who have made a point of granting the most liberal of licenses to their work.

    I encourage anybody to commercialize and reap profits from my MIT/BSD licensed code.

  4. John C. Welch Says:

    The so-called “liberal” licensing model you mention stifles innovation because such code gets adopted by closed source developers who then fail to contribute back to the project. Mac OSX is a prime example, when has Apple ever contributed back to the OS that they stole to build their own operating system around?

    http://www.opensource.apple.com/
    http://www.opensource.apple.com/release/mac-os-x-1057/
    http://www.macosforge.org/

  5. Otto Says:

    @Daniel Jalkut: I call it stealing because that is exactly what it is. If somebody uses a piece of code I wrote and doesn’t compensate me for it in some way, then it’s theft. The method of that compensation can vary, of course.

    Like I said, I’ve used those licenses before. Code I don’t care about gets a BSD style license. No compensation is expected in those cases, because the code has no value to me.

    @John C. Welch: Darwin is not the same as OSX. OSX is, and remains, closed source.

  6. Daniel Jalkut Says:

    @Otto You seem to be willfully overlooking the fact that the code you accuse of having been “stolen” is in fact licensed under BSD or MIT licenses. So the authors of that code “don’t care” either.

    It’s presumptuous and offensive for you to cast accusations of theft on transactions that don’t affect you, and which have absolutely zero indication of theft. People who license their code with liberal licenses do not expect compensation, and that is sort of the point.

  7. Daniel Jalkut Says:

    NOTICE: Comments closing tomorrow Tuesday July 7.

    There has been a lot of good dialog here but it seems to be spiraling now into a lot of circular debate where bluster is the tone of choice on both sides.

    Rather than allow this to go on in perpetuity, I’m planning to close comments tomorrow.

    For those of you who feel invested in the debates that have been taking place here, please wrap up your thoughts as you see fit by the end of the day, today.

    Thanks for taking part in my blog’s community. I’m always impressed when a lively conversation rises out of the aftermath of one of my posts.

    Daniel

  8. Chris Says:

    @John C. Welch:

    Let’s see…CVS as a sole criteria..so all SVN-based projects are also failures, because hey, they aren’t trackable on your one metric.

    John, I think you’ve seriously misunderstood how FreeBSD development works. The entire distribution is checked into CVS; that’s where releases are made from. I agree that it would be inaccurate to only look at CVS counts if FreeBSD were also using another SCM for its code, but it isn’t — the CVS repo is the home of the distribution by definition.

    Sigh. So since MS doesn’t use CVS, then no one develops any code whatsoever for any MS products

    Now you’re being ridiculous. The reason I chose CVS is that it’s the SCM that FreeBSD uses, see? If it used a different one, I would have chosen that.

    I’m glad you say it’s a simple metric, because it is, but it’s only valid for one thing: CVS commits to FreeBSD. It is not, in any way, a valid measurement for the health of an entire *community*.

    That’s fine. I’m not totally satisfied with it as a metric either, which is why I asked for suggestions on something else to look at. It should not, after all, be impossible to work out whether the gradient on collaboration to FreeBSD code is positive or negative, even if we have to use crude measurements. Do you have any suggestions?

    In addition, you offer no specifics on what you’re even talking about for CVS commits, which means you leave off the natural flattening on a mature project.

    This sounds like it might be a reasonable explanation. We have two competing hypotheses: one is that FreeBSD development has naturally flattened, and one is that FreeBSD is just not a very healthy community anymore. If it is true that Unix distributions see flattening over time as a natural course, I expect we will see the same phenomenon in other distributions such as Linux/Ubuntu/Fedora and so on. If we don’t, I don’t think it makes sense to claim that a Unix distribution would naturally flatten out after some years; again, I think it contradicts reality.

    I think that Linux is receiving monotonic growth year after year. (Again, which I can crudely measure with commit counts if you like, or use a better metric if you have a preferred one that we can get to.)

    – Chris.

  9. Chris Says:

    @Otto:

    I call it stealing because that is exactly what it is. If somebody uses a piece of code I wrote and doesn’t compensate me for it in some way, then it’s theft. The method of that compensation can vary, of course.

    I’d like to make it clear that I thoroughly disagree with Otto here, and agree with Daniel. If someone distributes a piece of code you wrote *outside of the wishes you made clear when you released it*, that’s theft, whether it’s a pirated copy of Windows or a copy of Linux without corresponding source. If you made it quite clear that your wishes amounted to “This is my code, please use it for whatever you want, including making proprietary software”, it’s ridiculous to come back and claim theft later.

    – Chris.

  10. Scott Wilson Says:

    @John C. Welch

    As this is going to close down, I’ll try again:

    .

    Well, to be blunt, if you use the GPL, that is an indication that you do support at least some of the political aims of the FSF et al

    Okay, which ones?

    Seriously which ones does it indicate that you support? I’ve seen this accusation made in many forms, but rarely clarified with specifics. You have to admit it’s a bit vague, something like saying if you support one policy advocated by a politician you must support all of his or her policies.

    It seems to me like guilt by association, but perhaps I’m misunderstanding you. What specifically do you mean by this? Which political aims does using the GPL indicate that you support in your opinion?

  11. Chris Says:

    Scott said:

    It seems to me like guilt by association, but perhaps I’m misunderstanding you. What specifically do you mean by this? Which political aims does using the GPL indicate that you support in your opinion?

    As I think Scott’s already pointed out once, Linus Torvalds identifies as fundamentally disagreeing with the most basic of the FSF’s politics, including “software should be free”, and has said publicly that he thinks the FSF is pretty crazy. I can’t imagine a more compelling example of someone who uses the GPL, likes the GPL, and rejects pretty much all of the FSF’s politics.

    – Chris.

  12. Otto Says:

    @Daniel, @Chris, you’re both assuming that the authors of the code are implicitly okay with their code being used because it was BSD licensed (or equivalent).

    However, I’d argue that unless you have spoken to every developer of that project, ever, you cannot make that claim. As can be pointed out by others more skilled with words than I am, perhaps the developers to this project didn’t know the implications of the license, or maybe they simply contributed to the project which was already licensed in that manner.

    My point is that while commercial use of such code may be perfectly legal, what is “legal” and what is “right” are not the same thing at all. Somebody could easily feel ripped off when their code is used in such a way, and no compensation is given. The bad part about it is that under these “liberal” licenses, there is no legal recourse.

  13. Chris Says:

    @Otto:

    Oh, okay, that makes more sense. I contribute to X, and would prefer it to be under the GPL instead of BSD, because there are regular instances of companies taking the X code and producing non-free work on top of it. I can’t say that I feel like they’re stealing my code, though — if I did strongly feel that way, I wouldn’t have much motivation to contribute in the first place. It was my choice whether or not to join a project that I knew used the BSD license.

    My point is that while commercial use of such code may be perfectly legal, what is “legal” and what is “right” are not the same thing at all.

    I think that, when code is BSD-licensed, it is both legal and right to use it in accordance with the license. I’m not going to take advantage of that to make proprietary software myself, because that’s not something I’m interested in, but I don’t think I have reasonable justification to criticize someone else for doing so.

    If you, or a consensus of developers working on a project, want it to be GPL instead of BSD there’s nothing stopping you from re-licensing it. If that hasn’t happened, one has to conclude that the developers really meant that they wanted to use the BSD license when they decided to choose it.

    – Chris.

  14. Dallas Hockley Says:

    @Otto , &Chris – If a developer contributes code to a project without understanding the license they are releasing it under, I’m afraid they have no case and no grounds to complain. As most have stated in this entire thread, the developer has a choice. As does the user. Developers don’t need to write code for a project with a license they don’t agree with, and developers don’t need to use projects that are released under a license they can’t or don’t wish to use. Nobody can read the mind of the developer. If you want control over the uses of your code, then don’t release it as open source. If you are willing to release some control, find a license you agree with *regardless of the company that uses it*. The user needs to abide by the legal terms of the license.

    What you can’t do with open is make arbitrary “I like this company I don’t like that one”. The license is a bidirectional open agreement with open source. You don’t need to contribute to use it. BSD, MIT and others *can* be commercialized by companies.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:
    1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.
    3. The name of the author may not be used to endorse or promote products
    derived from this software without specific prior written permission.

    That’s the end of your conditions in the BSD sample license. You waive all other rights by not asserting them in the license. For developers that don’t understand the license, please, please don’t release your work under it then. Just as you shouldn’t sign a contract you don’t understand, you shouldn’t provide software under licenses you don’t understand, as the two things are very much the same concept.

  15. Sigivald Says:

    The GPL position on plugins is, indeed, bullshit.

    That one must have “intimate knowledge” to make one is not only a) false if the API is good and b) irrelevant.

    The license says what it says, and it’s a legal document made for legal purposes (the FSF’s propaganda); to try and extent it for political reasons where it does not go isn’t going to cut it under any sort of challenge.

    Basically, you can’t force anyone to use any given license in some code they wrote from scratch using arbitrary tools on an arbitrary system. You can say “we don’t support non-GPL plugins” or “non-GPL plugins make The Baby Stallman sad” or anything else, but a viral license simply can’t cross the boundary into some other code just because it was loaded on the same machine and implements an interface*.

    I can’t comprehend any legal framework under existing copyright law where that could possibly work – and as far as it being “morally justified” outside of a legal context, well, that’s hilarious. Lots of luck with that one.

    (* Or uses the right sort of IPC or whatever mechanism is used for the plugins.)

    (And on the “GPL/FSF” thing, I think that using the GPL means only that you think something you wrote should be freely available, and you chose the GPL for it.

    It might mean nothing more at all other than not wanting to write your own license or caring. It might mean you agree with everything Stallman ever said. But the only thing it definitely means is that you chose that license – and that doesn’t mean you put any thought into it or its implications.)

  16. Daniel Jalkut Says:

    @Otto – the debate over licenses is difficult enough when you base it no the logical premise that people who are granting their work under a specific license are doing so with full knowledge of what that means. I think it’s a useful, separate conversation, whether people are liable to grant an inappropriate license for their work because of ignorance or through coercion, but it’s not really pertinent to the discussion here.

    Consider the hypothetical victim of “theft” that you describe, who is somebody who contributed code to a BSD/MIT project without a full understanding of the implications the license had on their work. It’s no fault of the license if their code is used in projects that defy their wishes. In the worst case, blame could be laid on the project who accepts the changes, for not making it clear what license the author is granting by contributing code. But most logical of all is to put responsibility on the author to understand what rights they give up by when donating work.

    As an example of how fruitless this kind of “hypothetical” is in evaluating the true merits of a license, I can turn it around easily and suggest that the contributors to GPL projects have been hoodwinked into allowing their code to be used in restrictive projects that do not allow the freedom they had hoped for.

    The only reasonable premise from which to argue the merits of these licenses is to assume that the licenses are being applied legally by authors to their own work, and that they accept the implications of the license.

  17. Phi.Sanders Says:

    Instead of debating the licenses, take a step back at the source of the frustration Daniel wrote about. He was looking at some GPL project and thinking that it had some value to him, that by using it he could make something new and charge for it.

    Left there, it sounds like a good thing… user gets new feature, developer gets new revenue, win/win.

    Except that, to create this thing, according to the GPL license, he would have to open source his work, and give his labor to all comers.

    Of course, legally, he could still sell the product, it’s just that someone else can trivially use the published source to make the same product/service, which would have the practical effect of reducing the easily remunerable value of Daniel’s labor.

    In short, the business case no longer makes sense to him, unless he can guarantee exclusive monetary capture of the required labor. Of course, that is a fearful thought, of sinking time (therefore money) into a hole.

    It follows then, that the obvious alternative is to still create the new product/service, but to do so by either licensing a proprietary library of equivalent functionality; or by creating the needed functionality in-house, at a greater expenditure in time/money than envisioned. That a GPL library may exist that uniquely does something does not change the equation, other than the magnitude of what you would have to do to replicate it, or pay to license some equivalent of it.

    So again, the business case is weakened for this new proto-creation. It’s hard to make it profitable. Frustration sets in and the thought arises :

    “If only the GPL didn’t restrict me from taking this library, and forking it, to extract value from it exclusively for myself…”

    In short, it’s a case of greed, and I mean that non-pejoratively as it’s a natural human response to this sort of catch-22. You wish to change the constraints that reduce your idea’s viability as a product, so that you can realize it’s potential. It’s just that it may not economically viable.

  18. Frank Says:

    Wow. Quite a discussion you kicked off there, Daniel. Considering how emotions can run high on such topics, it’s been amazingly civil all things considered.

    Just a few observations if I may. First, to be clear, I’m what I would call a pragmatic idealist. That is, I tend to be idealistic in my thinking, but I’m not an idiot when it comes to the ways of the world (i.e., I’m not a zealot). So the emotional levels shown in this thread, while all valid and in most cases articulated well, just don’t strike a nerve for me.

    I believe it takes all kinds, and as noted early in the comments, you basically have proprietary licenses and open source licenses, and in the open source arena there are the GPL-ish licenses and the MIT/BSD/etc. licenses. Personally, there’s room for all kinds of licenses, and regardless of people’s emotional feelings, that’s reality. As much as we might want product A to be GPL’d or product B to be BSD licensed, that’s not our decision to make. The decision of a software license is up to those creating that software.

    Now for some developers, they choose proprietary licensing because they feel it is their intellectual property, they’re insecure in having others see their code, they’re afraid of competitors taking their code and–in essence–taking food from the developer’s plate, what have you. In fact, correct me if I’m wrong, Daniel, but your Mac products–Mars Edit and Black Ink–would fall into this category… that is, proprietary licensed. You don’t offer the source code to your products, or did I miss that on your site? (Seriously, I looked for a license page but didn’t see it.) And assuming this is correct, this is your choice. You’re an indie Mac developer, after all, and let’s face it, if you gave away the source to Mars Edit, someone might take it, rebrand it, and cut off your income.

    But it does unfortunately smack of irony when a developer of proprietary software complains about an open source license. I realize you were making a specific point about WordPress plugins, but you can see how, to an outsider, that might sound a bit contradictory. Of course you’d prefer a BSD/MIT style license. You could in such cases, if you so chose, take without ever giving back. As an indie developer, that’s a very attractive proposition. Why reinvent the wheel when you can copy/paste or use libraries others have written?

    And yes, realistically, that is what happens with such liberally licensed software. But then, that’s the authors’ intent, isn’t it? I mean, if they didn’t want you using their code without necessarily “kicking back” code improvements/etc., they would not have used that license.

    But those who chose a “viral” license like the GPL have their own reasons for doing so. And yes, while it’s very clear that there are ardent folks in both camps and emotions can run high, I don’t really agree with those who say one side or the other “rants” more or, in the case of GPL supporters, that they’re all about… what did one person write?… “hippies giving corporations the finger” attitude.

    Different developers choose the open source license they choose for a variety of reasons. Some folks create incredible libraries or tools that they want to simply share with the world in a purely altruistic way, and they choose a liberal license. Others do so in hopes that their code will become the de facto standard for whatever it is they’re doing. Still others, who may also be altruistic but have a more jaded view of the world and have seen how certain companies (and here you can insert pretty much any major corp. at some point in time) take open source code and never contribute anything back (even a “thank you”, let alone financial or coding support to the original project), choose a license like the LGPL/GPL because they want to share their code with the world, but they think it requires such a license to make sure everyone benefits should someone use the software.

    I do agree with some who wonder about the possibility of a GPL-like license that applied only to the GPL’d code itself, not necessarily “spreading” to the entire application that may use a piece of GPL’d code. But that’s a tough one to write I suspect. How do you draw the line between modifications to code and an app which just uses the code? If I link to the (currently GPL v2 licensed) libpurple library that is the foundation to Pidgin and Adium in an app that incorporates XMPP but also does calendaring, is that a modification? What if it does calendaring, email, and word processing?

    The truth is, we can debate all we want. Licenses are here to stay. As for one being any more “right” than another, I can’t honestly say that. Each license has its advantages/disadvantages, and it’s the developer’s right to choose which fits his/her view of the software world best.

    I enjoyed (for the most part) reading the comments to your post as it reminds me of the constant evaluations I have had to make over the years. I idealistically believe in the general open-source movement. I am not a fan of “silos”, of software potentially locking my data up without having recourse (though this is more open open standards than open source), and I like the idea that, if I wanted to, I could get under the hood.

    For those who say this only applies to those who can program, I’d posit that nobody would be terribly keen on buying a car that came with the hood welded shut and that only the dealer could get into. I may not be a mechanic, but I can certainly tell if my oil is low, change a headlight, and do other basic work. And for other work, having the choice of who to take that car to is important to me. Ditto for software.

    But as to which license I would pick if I were creating a new project? It depends. Ditto for which open source software I might use in a project (e.g., Trolltech’s Qt or wxWidgets?). For those who say one license trumps all others, I would say that I beg to differ. Each has demonstrated its successes and failures in certain instances. While we may want software to have one license or another so that it fits our view (e.g., a BSD-licensed library sure would be more flexible for me to use in my own projects), would any of us want to be denied the choice of license to use for our own software?

  19. Stephen Says:

    Chris, I think you’ve forgotten the most compelling evidence for the demise of BSD: Netcraft confirms it.

  20. Chris Says:

    @Stephen:

    Chris, I think you’ve forgotten the most compelling evidence for the demise of BSD: Netcraft confirms it.

    Especially apropos given that I previously worked at Netcraft. ;-) (But did not have “confirming the death of BSD” amongst my job responsibilities.)

    – Chris.

  21. Arnold J Says:

    Every OSS survey out there shows that MOST OSS is GPL. Therefore any OSS which is not GPL is not playing nice with the rest of the OSS world. It is very easy to be GPL compatible and many licenses are but the GPL still dominates.

    Had you researched anything, like the distribution of licenses in OSS projects you wouldn’t have made these silly claims.

  22. The Mad Hatter Says:

    Daniel,

    This about the fifth time in the last 5 years that someone has had an epiphany about the GPL, and came to exactly the same conclusion. Isn’t that curious? Very curious?

    As to an answer to you, Developers don’t form groups like that. Instead Developers form groups based on the software that they want (unless they work for a closed source company, in which case they are assigned a project).

    So the Project comes first. Next comes the license. Here are a couple of examples:

    You want to build a newer, better, TCP-IP stack. You want the world to use it. Obvious choices are the BSD and MIT licenses.

    You want to build a super duper media player with TIVO like capabilities, because, hell, you can’t afford a TIVO. An Apple TV would be nice too, but you can’t afford it either. This is not a simple project, you want to make sure that you get code contributions back because otherwise it might never be finished. Obvious choices are the GPLV2 and GPLV3 & Later licenses.

    You want to build a new Desktop using a user interface you’ve designed yourself. You’d like to get code contributions back, but you want to let it be used in other projects, so you dual license it under the GPLV

    super duper media player with TIVO like capabilities, because, hell, you can’t afford a TIVO. An Apple TV would be nice too, but you can’t afford it either. This is not a simple project, you want to make sure that you get code contributions back because otherwise it might never be finished. Obvious choices are the GPLV2 and GPLV3 & Later licenses.

  23. The Mad Hatter Says:

    Sorry Daniel – mouse problems caused this to post before I finished it.

    *****

    This about the fifth time in the last 5 years that someone has had an epiphany about the GPL, and came to exactly the same conclusion. Isn’t that curious? Very curious?

    As to an answer to you, Developers don’t form groups like that. Instead Developers form groups based on the software that they want (unless they work for a closed source company, in which case they are assigned a project).

    So the Project comes first. Next comes the license. Here are a couple of examples:

    You want to build a newer, better, TCP-IP stack. You want the world to use it. Obvious choices are the BSD and MIT licenses.

    You want to build a super duper media player with TIVO like capabilities, because, hell, you can’t afford a TIVO. An Apple TV would be nice too, but you can’t afford it either. This is not a simple project, you want to make sure that you get code contributions back because otherwise it might never be finished. Obvious choices are the GPLV2 and GPLV3 & Later licenses.

    You want to build a new Desktop using a user interface you’ve designed yourself. You’d like to get code contributions back, but you want to let it be used in other projects, so you dual license it under the GPLV3 or later, with a note that special licenses are available.

    While the license used by a project is part of the attraction, the reason a project gets developers is that it’s something that the developer needs or wants.

    Very few people who are interested in Free/Open Source Software will be interested in working for a closed source project. Very few people who work for closed source projects will be interested in working for Free/Open Source Software projects. So you can count the closed source people as not being in play.

    And as to license usage, check the Black Duck site, I think that GPL licensed projects account for over 70% of the Free/Open Source Software projects that they track, so it’s obvious that a lot of developers like what the GPL does for them.

  24. Chris Says:

    @Mad Hatter:

    And as to license usage, check the Black Duck site, I think that GPL licensed projects account for over 70% of the Free/Open Source Software projects that they track, so it’s obvious that a lot of developers like what the GPL does for them.

    In particular, that’s:
    http://www.blackducksoftware.com/oss

    I think Daniel’s actually making a more subtle point than “the GPL is unpopular”, though — he’s saying that, even though most free software projects use the GPL, they might be getting more contributions if they didn’t. Since 99% of the software industry currently thinks that free software in all forms is crazy, the argument goes, that’s a large pool of developers who might contribute to free software if they weren’t being put off by all the presence of all the people who require that their donated code shouldn’t turn into non-free code later.

    I don’t agree with Daniel’s conclusion, because I think it flies too much in the face of observed reality regarding examples like FreeBSD vs. Linux, and I think an extraordinary claim (“the most popular free software license, as used by some of the most successful free software projects which have plenty of backing from big business, is actually a really poor license because it doesn’t strongly attract contribution”) should require extraordinary evidence.

    But it’s true that his what-if scenario of “maybe your project would be doing better” is harder to knock down than by merely saying that, amongst free software licenses, the GPL is a popular one. So you haven’t done that.

    – Chris.

  25. Dallas Hockley Says:

    I just did a search on Google Code using their license search feature. Quick scouting with their estimate numbers does show a majority of GPL, but interestingly, there are quite a few BSD and Apache files INSIDE GPL projects. In many cases these are more utility libraries and functions that provide some fundamental services and features that are often present in more modern language cores like Java, Ruby and others.

    I’ve got the full count and table over at my blog for anyone interested in looking at the numbers.

    Maybe there is a hierarchy of licenses, in the utility code in Apache, BSD, MIT etc and the commercially viable protected from getting commercialized if so desired by the GPL. Either way *both* communities and styles of projects benefit from the liberal licenses. Even the GPL. I wonder if the coders contribute back to the BSD license utility libraries when they fix things and modify and extend them? ;-) (I’d guess yes as it’s not that political with the majority of developers, and it’s the right thing to do)

  26. Cátia Kitahara Says:

    I don’t think that makes it more or less valid from a business point of view, but the use of it in public organizations is a very useful addition to the discussion. The downside is that the code can’t be used in a business to build the economy of Brazil unless the government allows dual-licensing.

    Dallas Hockley, but it may be used in a business, why not? Also, free software as well as any other software needs support, this is a great incentive for small businesses to grow and without royalties all their profit sticks with them.

    Thanks for your post! The adoption of free software by companies that don’t want to be wholly-dependent on American corporations for their IT infrastructure seems a very important issue for growing those countries’ economies and their ability to manage their own technology needs. It’s great that President Lula showed up at the conference, I can’t imagine Barack Obama coming to a free software conference in the US. ;-)

    It is really an important issue. Let me add some more numbers, to illustrate how true is what you said: In year 2007 Brazil exported 250 million dollars and imported 3 billion dollars in software, just think about it! Why is that? Maybe because 97% of our computers runs Windows?

  27. Dallas Hockley Says:

    @Cátia Kitahara – ah, let me clarify.

    Dallas Hockley, but it may be used in a business, why not? Also, free software as well as any other software needs support, this is a great incentive for small businesses to grow and without royalties all their profit sticks with them.

    You cannot extend the software and then market it as a proprietary solution. Many businesses including those I’ve worked for use many open source software projects and tools. They don’t market products based on them though. There is nothing to stop a competitor or your customer from simply downloading the code if your product is GPL. You need to sell support to pull in revenue. I didn’t clarify which role the software was fulfilling. My bad. If you want to make a business off of support, that can be done on either GPL or any other licensed software should you choose. Absolutely true.

    As for the trade deficit, I would venture a guess that if you take Microsoft Operating Systems, Microsoft Office, Oracle and Microsoft databases, and Oracle, Microsoft and SAP business software you probably account for well over half the 3 billion dollars. Just a guess based on experience from IT shops in a few big companies. “One throat to choke” is a mantra of many a CIO, and there aren’t many open source projects that warranty their software. You need to pay for the throat. :-)

  28. Daniel Jalkut Says:

    Thanks, everybody for participating. Closing comments now. This makes a pretty good artifact I think for anybody who wants to read into to the thoughts & motivations on all sides of the argument.

Comments are closed.

Follow the Conversation

Stay up-to-date by subscribing to the Comments RSS Feed for this entry.