Apache and the future of open-source licensing
If most developers contribute to open-source projects because they want to, rather than because they're forced to, why do we have the GNU General Public License?
Free Software Foundation
That's the question that hit me last night as I tried to sleep in the shadow of Richard Stallman's MIT. Stallman, of course, originated the GPL, a brilliant way to turn copyright on its head in order to force software to remain open.
But in the process, did Stallman simply create an alternative way to release proprietary software?
I'm not trying to be cute here. Think about it. If you you want to maximize adoption and reuse of your software, why wouldn't you use Apache? Perhaps because you don't like the thought of someone using your free software in a proprietary product?
"I would actually rather nobody use my software than be in a situation where everyone is using my gear, and nobody is admitting it," wrote Zed Shaw, creator of a popular library and Web server for Rails called Mongrel.
Shaw, and perhaps other coders, have turned to the GPL as a way to protect their software from use they deem objectionable. But isn't this precisely what the proprietary software licenses do? The only difference is that the GPL forces code to be open, rather than closed.
Are the two approaches so very different? The effect--blocking undesirable use of one's software--is largely the same.
After 10 years in open source, I'm increasingly of the Apache-licensing persuasion because I'm starting to concur with open-source luminary Eric Raymond that "the GPL is unnecessary...(and) is also a confession of fear and weakness."
If I'm mostly concerned about adoption, Apache promises to be better than the GPL for all the reasons stated by Daniel Jalkut in his excellent ode to Apache.
And if I'm concerned about protection, then why not simply use a proprietary license--one that doesn't scare opposing legal counsel?
With the Web making open-source licensing largely irrelevant, anyway, it's a good time to evaluate the merits of the two dominant open-source-licensing approaches. For this moment in time, they're essentially equivalent, at least to end users and Web developers, neither of which is required to contribute back derivative works.
Indeed, I believe that one of the primary reasons that Linux, MySQL, Lucene, Hadoop, and other Web-oriented technologies have thrived in the past few years is that they have basically come legal-encumbrance-free.
Would Google have built its server infrastructure with Linux if it had been required to contribute all its software back? Almost certainly not. Yes, it has elected to contribute back to MySQL and others when it was advantageous to do so, but I think that Affero GPL, which translates the GPL's provisions to network-hosted software, would have effectively killed the utility of MySQL, Linux, and other open-source technologies for Web titans like Google, Facebook, and others.
In short, perhaps the best thing that could have happened to open source in the past few years is the increasing relevance of its code due to the decreasing relevance of its licensing. More adoption due to fewer controls.
Developers don't contribute to open-source projects out of force. They do so out of interest, desire for recognition, and other reasons. Once you take force out of the equation, the GPL loses its relevance except as a tool to protect against competition...which proprietary licensing perfected long ago.
For those who worry about the world being closed off behind proprietary licenses, it's not going to happen. The software world has been opening up, though not always at the pace some open-source advocates would prefer. On this point Tim O'Reilly has correctly argued:
If you close things off, eventually, you lose. This is why one of my slogans is, "Create more value than you capture." As long as people are doing that, I don't care whether they're trying to capture some value (through proprietary licensing).
In other words, people don't have to be forced into openness. It happens out of natural, selfish desires. Given the history of humanity, that's probably a more dependable basis for business strategy than an expectation of charitable donations through code contributions.
So, wither the GPL? I'm asking a sincere question to which I have hunches but no definitive answers. I'd love to hear your thoughts.
Disclosure: my company licenses its software under the GPL. This post reflects my personal (evolving) opinion and should not be construed as representative of the intentions of my employer.
Follow me on Twitter @mjasay.
Matt Asay brings a decade of in-the-trenches open-source business and legal experience to The Open Road, with an emphasis on emerging open-source business strategies and opportunities. Matt is vice president of business development at Alfresco, a company that develops open-source software for content management. He is a member of the CNET Blog Network and is not an employee of CNET. Disclosure. You can follow Matt on Twitter @mjasay. 



I'd argue that vanity is worse than desire to feed and clothe the family from a job that pays you for your highly skilled labor from a company who feels it is perfectly natural for them to own what they paid you to produce.
RedHat manages to make growth profits in spite of a recession. Yet the vast majority of their catalog is GPL, and the vast majority of their income is made from service subscriptions.
services != code. ;)
And the fact is Matt, all licenses ". . .protect their software from use they deem objectionable." It's what the conditions of a license are. I guarantee Apache does the same thing. The only way to not take part in this practice which for some reason you seem to be opposed to is to put something in the public domain. That's a whole separate argument in it's own right.
Actually, you're wrong. *Licenses* select how code can be used. But even if they allow code to be placed into 'proprietary' software, your copyright is still yours. And code can be 'multi licensed', as well.
If "getting a dime" is important to you, then a more 'proprietary' type license *should* be your preference, over the GPL.
The GPL is often said to be "free as in liberty, not free as in beer"; but the fact of the matter is that it pretty much forces *both* situations. No one really makes much money off of GPL'd *code*; they make money off of either proprietary applications or bundled services that go along with it.
Take RedHat, for example. You can *only* get RHEL from them in directly usable form *if you buy service contracts*. Sure, you can get the source, and compile or assemble it all, and then put a system together... ...but is that really *practical* for most folks who want to use it? I'm a computer professional myself, who has worked with all code levels (machine/assembler and higher level languages) over the years, but I'll tell you right now I wouldn't want to create a distribution just for my home machine... ...or even for my work one. I like to tinker as much as anyone with code, but I don't want to have to spend *hours* doing so just to get my system back into some semblance of working order after trying something new.
The problem I have with the GPL is that it's too inclusive. Any 'monolithic work' that includes a portion of GPL code has to be GPL as well. No mixing of the 'best code for the job'. In actuality, a desire to use a snippet of GPL'd code, no matter how small, actually *removes* my freedom of license choice for *my* code contribution, no matter how large. That's a problem to me, since I like the ability to 'pick and choose' without restriction from what I see from an available codebase for any particular thing I'm trying to do. In that situation, the GPL is just as restrictive as any proprietary license ever could be. Yes, I'm one of those 'practical' folks, not some idealistic dreamer, but to be perfectly honest, while *both* mindsets are truly needed, it the 'practical folks' who actually end up supporting the dreams of the dreamers in the real world; no matter that those idealists tend to look on us with distaste.
What this ends up doing, in essence, is a waste of productivity 'reinventing the wheel' under a licensing scheme more compatible with the *rest* of the complete work.
To me, that should not be desirable, nor a requirement.
The GPL leads to more open source. Without it, those that optimize at not contributing but at creating businesses win out. This leads to those that do contribute finding they have no or little market for their work. Even services become undoable if their software does not have the lock-ins and closed features of those optimizing for that without contributing.
The result is less open source and more reinventing of the wheel. The result is monopolization since the lock-in of integrated multi-monopolists are greater than those of any small outfit.
Google might be unstoppable in some ways because they are closing their code perhaps. If they had to reveal more, we might continue to have more competition in that field.
I favor more open source and greater competition. That is why I support the GPL, AGPL, etc.
Companies need to spend more time looking at **customer specific customizations** and mastering codebases than they do trying to build something they can close off in order to mint without competition.
Lock-in, enabled with Apache licenses, favors monopolization by the strongest. Those that had achieved a temporary minting capability eventually lose that to the bigger fish because their wares won't interoperate at reasonable competitive costs. [Costs to reverse engineer on an ongoing basis, to strike pricey and limited interop deals, to lose control over related revenue streams and opportunities, to preserve quality, etc.]
With this kind of monopolization black hole power in fewer and fewer hands, more suffer and quality goes down as winning becomes about building lock-in and not about quality. Some level of quality will follow, true, but not what we see in free markets. For example, Microsoft software quality went up in recent years to a significant part because of the GPL-led FOSS threat.
Do we want to return to the days where few wanted to open their code because it meant the lock-in powerhouses would leverage their work to outdo them in the market place by leaps and bounds? Do we want to see fewer checks on monopolists?
End users frequently like the GPL once they figure out what it enables and it loses its strangeness. At that point, it's the proprietary licenses the ones that seem ridiculously constrictive and scary.
You expect any one to take you seriously?
Proprietary is all about control and lock-in. Such a thing does not and can not happen under the GPL.
I've never understood the animosity towards the GPL. In my view, the GPL is about getting paid. I get paid to contribute my code by getting other people's code back in exchange. Let's say I'm a company and I have a great idea for software, and I write 50% of it, and I can't afford the time or money to fund the other half. I can release it as GPL, and guarantee that if someone writes the other half, I get "paid". If I release it under the Apache license, another company can finish the other 50%, profit from my original 50%, and not give any of it back. This makes the GPL a good concept for companies when they release.
The other benefit of the GPL for companies is that they get the chance to profit from offering a dual licensed non-GPL version for those that desire to embed the software in other systems. This is also pro-business.
The GPL is usually only a problem for freeloaders. Not that I'm criticizing - I freeload frequently. But you can't expect every original contributor to offer his software without the GPL simply so we can freeload. They have a right to get paid back with others' contributions if they so choose. And they have a right to release under Apache/BSD if they so choose.
Actually, there is no restriction on use or modification. You can do whatever you want with it in your house/company/whatever.
The one and only restriction is on distribution outside of your person/realm/company/whatever. The one restriction is quite simple: you have to freely provide the source code, plus any modifications you made to that source code since you yourself got it.
This means that the only ones seeing any restriction at all are those who want to redistribute it, and they can even sell the thing if they really want to, no sweat. Just don't lock it down and/or hide it.
The GPL allows (and encourages) *collaboration*; but not *industry*; except in the case of an 'end user' just *using* the code for some internal purpose. There's no real "profit margin" to GPL'd software; only potential 'cost savings'. Any financial gain has to reasonably come from something else bundled in; but yet a discrete part.
In your company's scenario, again, it's not a question of you getting 'paid'; since you really don't. It's a question of potential *cost savings*; not direct income. The 'other company' that writes the other 50% of the code you deemed needed *could* merely write it to support an internal operation, and *never* contribute it back, even if your part was licensed under the GPL, since it *only* requires backwards contribution *if a derivative is distributed*. No distribution, no 'payback', so to speak.
However, had you licensed your code under a more *proprietary* license, *anyone* wishing to use it *would have had* to pay you back, whether they licensed it for internal use or further distribution. If you picked a merely "open source" license rather than 'free software' one, the 'vendor lock in' issue is rather moot. With the source, you can do your own support, or hire professionals, under a NDA, if necessary. You could even 'cross license' any enhancements or additions they made to your code. True, there might be a bit more negotiation required, and it might not be 'free as in beer' in that case... ...but if you're looking at being 'paid back', why should that matter?
But your late-night insomnia notwithstanding, the motivation Stallman captured so neatly and creatively in the GPL is not a desire that "my particular bits of work be used by as many people as possible," but rather that "as much work as possible be available for use by as many people as possible." It is not exclusively self-centered, but is rather evangelistic. Fans of free software believe that it's better for everybody to be able to use everything, not merely the bits that they personally provided.
As always, you reason from the perspective of 'commercial open source," the attempt to harness the energy of the open-source movement to the wagon of commercial development. That's a considerably more specialized, narrower field than the whole world of open source.
It's no bulletin that the BSD / Apache / Eclipse branch of open-source licenses are, in some way, friendlier to commercialization than the GPL branch (and, to disclaim, that's exactly why the CollabNet Subversion license, the one my company is most connected with, is of this branch). And it's always been clearly acknowledged that "the esteem of my peers" is one factor in open-source contribution. But both of these are thin slices of a much larger pie; equating them, or intersecting them, doesn't explain the whole, it only circumscribes an even smaller comfort zone.
I believe that you, Matt Assay, is on the board of one such company that uses GPL as a barrier. Sure, it was great PR when they said that they were converting from Mozilla to GPL, but the real business reason to do so was likely to discourage other companies from building a business around a derived work.
I can write a program, put it out with the GPL, and then license the exact same code to someone else as proprietary. Why can I do that? I am the owner, and can do what I please, the GPL doesn't stop that.
What I can't do is make others code proprietary. Why?
Because I do not own it.
The GPL does not take any rights from the copyright holder. It just gives others rights(including the right to sell it) to use it however they like, and a few responsibilities if and only if they distribute it.
Trolltech for example dual licenses the exact same libraries. They can do this because they own QT.
Another example, Tenable made Nessus 3 proprietary, even though it is based on a lot of GPLed code. They were allowed to do this because they own the source code. However, the GPL on Nessus 2 allowed others to fork it, therefore we have openVAS.
For example, it is possible for a dual-licensing company to use the collaborative development dynamic to build something up to near functionality, and then stop using the "open" license, offering only the proprietary one. The work as of the licensing change would remain open, of course, but with the sudden evaporation of the community management from the company, there's not much chance the public version would be completed, or not as well. That kind of gaming of the system seems entirely too possible, and I don't see that we've developed either the legal or the cultural reflexes to protect ourselves from it.
(By the way, by no means am I suggesting that Matt personally, or the Alfresco commercial open-source product, is or will or has even considered this subterfuge; just pointing out the general risk.)
An equitable and effective intellectual property system must take into account both first creators and those who come later to build upon their work.
?Committee for Economic Development
The GPL protects the software, as it evolves, from becoming proprietary.
It guarantees that the freedom handed down from the initial programmer to the first user, is passed on to future users and programmers.
There aren't problems with people giving back to Apache, as far as we know, but it could happen. It happened with X.Org. If you want to know why we should use the GPL, look for cases where the lax licenses caused problems.
You can use GPL software with a proprietary product. You can run Oracle on top of Linux.
GPL ensures that improvements are fed back to the community. Apache leaves open the possibility that any commercial entity that has financial/marketing muscle can ensure that the original product cannot be commercialized by others. Apache is stacked in favor of established commercial players.
If Alfresco was under Apache, Microsoft can take Alfresco, make it compatible with MS-Office and sell it as a cheaper (but officially supported) alternative to Sharepoint. It can pretty much put you out of business. Embrace, extend.....
Apache License has its benefits but if you really want Free Software, you need GPL. Apache and GPL are targeted at different objectives. AGPL is well suited for some stuff. I suspect that there will be an even more extreme version of GPL in the future which will be proposed by commercial entities themselves. This will be to ensure that competition is not unfairly benefitted.
Why use GPL over proprietary? Simple: With proprietary systems you are at their mercy, on their terms. Want a feature that a weak plug in system can handle? You are screwed with proprietary, with GPL you can just get it done. The GPL has absolutely no terms that force you to redistribute what you added, that is optional, and if it is, then you have to GPL the changes.
That is fair, you built on someone else's work, let someone else build on yours. That is how we have advanced over the course of human history. Building on others work.
Proprietary stops this natural innovation.
That you need someone to explain it to you shows that you do not understand OSS in general and the GPL specifically.
As a mexican I can tell you that depending on the "promised word" of others, or depending on the inevitability of things, never have worked out to keep a system.
Let me explain why the mexican refrence. The U.S. was always believe a country of inmigrants (ask Arnold Schwarzenegger, Elon Musk, Michael "Monty" Widenius, Sergey Brin or even Marina Orlova [hotforwords.com]), but tell that to the thousands of mexicans that cross the every day. In real terms, the first group are a selected elite, while the others are just "illegal aliens".
In the 70's, a different tune ruled, with the "Brasero" program. The U.S. sanctioned this healthy interchanged. But no law was established to keep this "openness" and restrict future governments from "closing the border".
What happened? Times changed and "illegal" immigration became the target of politicians and business men alike. After a while it was the "holy grail" of all the troubles. So the border wall was created attempting to split integrated communities like Laredo/Nuevo Laredo. Much legal battles have been fought and lost on the way.
So those goodwill works? Nah. Presidents have come and gone suggesting a Europe-like free people transit agreement to extend NAFTA. (British accept Polish workers with no problems whatsoever). Today Canada is enacting a Visa.
The moral: Keep the GPL or else, since we don't know in the future if this is gonna a thing that politicians will take and mutate as they wish.
This is one reason why I dislike the hardcore economic rationalists (and Ayn Rand and those who gush at the phrase "free market"). These concepts attempt to boil down complex human behaviors into discrete, rational, predictable outcomes. That is not always possible. Human motivations and desires always exist within a gray area. Reality is much more complex than simply pitting production against efficiency and costs against profits.
Allow the ability to protect ones intellectual property, and you'll find they will be willing to use your code, and will be willing to give back what isn't really proprietary. This is the true beauty of the apache license and the reason that Apache has manage to do what no other open source software has managed to do: Dominate its market. Businesses aren't afraid of Apache causing them to lose their valuable IP.
There are no proprietary forks of Apache -- we got lucky. And even if Apache was GPL / LGPL, it would have been possible for people to build proprietary software on top. Sorry, but I don't think you know what you are talking about.
Apache is not the ideal license. It only encourages proprietary forks.
The GPL doesn't guarantee a better product, it just controls what you can and can't legally do, just like any other license. That's what a license is for. Uptake in the market will be driven by how good something is more than the license. A license can get in the way or get out of the way, but what the product does for the market will drive its success.
But if you think of software as a science, the idea of creating proprietary science is a contradiction in terms. That is why GPL doesn't cause heartburn for anyone that gets it.
And the Apache license can lead to proprietary forks. If it doesn't, then the GPL license would have been just fine as well!
GPL is about the freedom of developers to always have the full body of work available to build on. Apache is about the freedom of users to do what they want with the code.
This license comparison always comes down to people using these "freedom" words interchangeably, when they're really about providing "freedom" to different audiences.
In the end, much of the discussion falls back to the biggest problem in open source software: confusion about terminology. A lot of folks get copyright (ownership) confused with licensing (distribution). BOTH of these licenses only cover redistribution, but they don't keep you from using them personally however you wish.
1. Are you seriously suggesting that this was some sort of epiphany for you? You're just re-framing every license flamewar ever waged in different terminology.
2. And that terminology is a real stretch. I suppose that, per dictionary.com's definitions of the word, you could claim that GPL'ed software is proprietary by #4, "belonging or controlled as property", but that's such an incredibly vague definition as to be meaningless (and incidentally doesn't eliminate the Apache license, or ANY license). The standard use of the word in the context of software is CLEARLY #5, "manufactured and sold only by the owner of the patent, formula, brand name, or trademark associated with the product."
I, for one, think its vitally important to control the distribution of one's software even if you want people to USE it widely. Using and distributing are very different ideas.
Personally, I don't care who uses my software. However, I have had my software co-opted by greedy corporations in the past. They took it, modified parts of my code poorly and in proprietary ways to make it work with their value-added proprietary code, and then sold it to people for very large sums of money. So their users could not take newer versions of my code and upgrade their proprietary applications. Those people paid someone thousands of dollars to cripple the ability for them to get security updates, add new features, etc when I gave all those rights to the person that sold it to them. All I got was the blame when things went bad for them. And they went bad often.
Answer: Because that is how developers want to license their open source contributions. The reason why is simple - if they spend time and effort to create code and make it available to others, they want those others who use their code free of charge to reciprocate make their modifications available to them under the same terms. GPL also gives you the option of negotiating proprietary licenses for the same code with those who are not willing to reciprocate.
Question: Why do some people release open source software under a BSD type license.
Answer: Because in some cases the BSD license is better. For example, if you are creating a sample implementation which you would like both proprietary and open source to adopt, then a BSD license is appropriate. The caveat is that although you you gave your code away free, your code may be improved and your own code may be used to compete against you without giving you access to the improvements. This makes licensing code under BSD type licenses inappropriate for developers intending to improve commercial competitiveness by sharing development and testing cost with others.
.
Please read/learn about GPL here:
http://www.gnu.org/copyleft/gpl.html
Please answer your question so other people can understand too.
- by buskanaka July 29, 2009 9:33 AM PDT
- Eric Raymond is out of touch because he hasn't been in this part of the industry lately. Corporations will generally do the least they can in order to accomplish their business goals. When it comes to open source this means two things:
- Reply to this comment
-
Showing 1 of 2 pages (43 Comments)1. They will almost always use open source software in their products and infrastructure if there one exists the fulfills part of their requirement. The cost of designing, creating and testing software inhouse is out of the question if there already exists a "free" alternative. The open source license almost never comes into play at this point in the decision making process. Even if there are two equivalent open source software libraries that each have different licenses, it is usually developer familiarity that will drive the decision, NOT the license.
2. They will only release modifications back to the community if there is either a strong benefit or a large risk of not doing so. I have been at several companies where there were intentions of releasing all code modifications (because they considered themselves an open source company), but only those modifications to GPL software actually got any priority and the rest languished. In other words, releasing to the community in general was important for the company's positioning in the market (and with VCs) but GPL modifications were higher priority (and for legal reasons needed to be done as soon as the product was released). Modifications to other software was MUCH lower priority if it gets done at all.
To summarize, companies (and individuals) will usually take the path of least resistance which means using open source software when you can, and releasing the changes only when you have to.