The GPL: A Technology Of Trust
The GPL: A Technology Of Trust
Society is built on exchange. One particular form of exchange that we're genetically wired for is reciprocal altruism: speculative generosity with expectation of future payoff.
Open Source is a textbook example of reciprocal altruism. But this leaves the Open Source community vulnerable to parasitism. (This term comes from game theory; I'm not trying to insult anyone.) In a small group, trust comes from repeated interactions, and personal experience is adequate to recognize parasites and avoid them. But in a large group, interactions between any two people are often indirect and/or infrequent. Something more than experience is needed to engender trust between people who don't know each other, and who may never even meet.
Therefore, any large group must evolve a technology of trust. If it doesn't do so, it will fall victim to rampant parasitism, which will cause inefficiency, which will eventually bring stagnation and failure to compete -- that is, death.
The GPL is a technology of trust. Contributors to GPL'd projects trust that the GPL -- which depends on law, itself a technology of trust -- will prevent parasitism. They trust that if they contribute to a project, they will have access to the valuable goods built on their own work. So, while GPL'd projects can have forks, they can't have proprietary forks. And that makes all the difference.
This analysis may seem simple or even obvious. But its implications are far-reaching.
1. The GPL will eventually dominate Open Source (if it doesn't already). Both analysis and observation point to the GPL, or something like it, as the destiny of Open Source. More than any other current license, the GPL discourages parasitism; thus it enhances efficiency; thus it helps a culture outcompete rivals whose technologies of trust are less advanced. By making its host culture successful, the GPL -- or some future license built on it -- will finally win out.
2. We must preserve the GPL, for the sake of the community. When Microsoft attacks the GPL, it would be tempting for those of us who don't identify with ``Free Software'' to use as our primary reply that ``Open Source is more than the GPL.'' That would be a mistake. The GPL's peculiar strengths are crucial in the Open Source community's competition with other cultures who would love to see Open Source, let alone Free Software, gone and forgotten.
3. The GPL is good for business. Companies that use the GPL are neither foolish nor stupid. They simply want to trust that other companies won't be able to take unfair advantage of them, and the GPL gives them that immediate security while simultaneously allowing open cooperation. And in the general case, the GPL is a friend of business because it makes new and better efficiencies possible, and economies thrive on new and better efficiencies.
(On the other hand, we can agree with Microsoft that the GPL is bad for their current business. We can then proceed to use Microsoft's favorite word as we reply: Innovation won't stop just because you're not ready for it. The printing press was a good thing, after all, even though it forced professional scribes to change their business model. Adapt or die.)
In summary: We in the Open Source community need to stand with the FSF and defend the GPL against all comers -- not merely as a tactical move, but because the GPL is a valuable technology of trust. To outcompete other cultures, we must adopt technologies that work. And the GPL works.
-- Chip Salzenberg <chip@pobox.com>, member of the board of the Open Source Initiative
Part of the reason that GPLed software is becoming more and more popular is that software developers the world over are starting to realize that none of us are going to be the next Bill Gates. The days when you can do a project that is significant enough to become a commercial product as a solo project (or even with a small group of hackers) is long past. And even if you do come out with a piece of software that has commercial promise their is no guarantee that one of the gigantic software houses (ie Microsoft) isn't going to simply clone your product, undercut your prices, and out market you. Heck, even large commercial software houses like Corel and Borland are having a hard time keeping their heads above water, and they have large software applications that people are willing to pay money for. Microsoft's "integration" is making it increasingly hard for their products to compete (because they don't integrate as well with the rest of the Microsoft stable of products).
And Microsoft gets bigger every year. They are continually on the look out for new market niches to dominate. With their purchase of Great Plains Microsoft is getting set to dominate the small business accounting world, .Net aims at Microsoft controlling a major portion of the web, etc. etc.
This is why companies like IBM, Sun, and HP are now pitching software into the GPL world. For example, Sun knows that the only chance that an Office suite has against Microsoft Office is if it is free, and guaranteed to remain that way forever. So OpenOffice has been released under the GPL for three reasons 1) so they can get some help from like minded hackers, and 2) they want to create a market for an office suite that works well with their Unix based hardware, 3) they hope to make office suites a commodity and cut off one of Microsoft's important revenue streams while growing demand for their Unix servers.
IBM is working on doing the same thing with web services. They are helping with Apache and SOAP because they want to be able to sell IBM servers running OS400 or AIX (or whatever) that are capable of working with .Net clients. Like Sun, they would like the help of like minded hackers, and they want to make sure that their hardware has a capable set of tools.
HP, on the other hand, has already created a neat set of tools (e-Speak or something) but no one has heard of it, or is interested in using it. They hope that releasing the source code will help it become a standard.
Even more importantly, with GPLed software you don't have to be a big company to make a difference. Independent coders all over the world can collaborate on software that they all can sell as a service. And hackers working for large non-software oriented corporations can work together on truly interoperable infrastructure.
You can try to be the next Bill Gates if you want, but the outlook for making that kind of money from commercial software (at this point in the race) is pretty slim. The competition simply has too much of a head start.
So next question: Seriously, how do you feel about commercial software? Some authors require that you pay for their work, and don't even get source. Are you also angry about this choice of distribution terms?
As near as I can tell (and this is your fault, for ranting without explaining), your real problem is that non-GPL developers aren't producing source code that you (or others) can use for non-reciprocal gains (e.g. proprietary extension, etc.). You are whining because the 'cost' by your philosophy, is too high. I'm sorry, but if it's that important to you, you'll just have to write it all non-GPL. Then we can put Chip's hypothesis to the test!
When I write and release software, trust doesn't enter into it. It's my gift to the world. Eric Raymond's comparison of free software to other gift economies is very accurate for me. Take what I've made and use it. Make the world a better place. If it has to be proprietary, so be it.
This sort of unconditional gift isn't possible with the GPL, so I use the BSD license. As long as there are a few others doing the same, we can keep it up forever. This isn't a competition. We can all win.
--
Forward, retransmit, or republish anything I say here. Just don't misquote me.
I always found it funny that, in a backhanded way, the GNU project is just one more thing Xerox invented.
--
$ find
For authors, GPL'd code is an exchange.
--
Microsoft wants to (or already does) use GPL'ed code but does not want to release what they did with it.
If so, I'd bet it was incorporated by low-level workers, in violation of the company's policies and the wishes of the upper management. Too much of Microsoft's business model is built on keeping the source to themselves for an exec to risk having to give it all away for a few extra features - or even a lot of very powerful features.
Especially since the GPL doesn't stop you from reverse-engineering the code and writing your own equivalent to create the feature! It even allows a single person to do this - though a large company would want to "clean-room" it, with one team doing the analysis and another the coding, to avoid risk of conatmination with enough code snippets to cross the boundary between a genre member with fair-use quotes and a derived work.
GPL and the other open-source licenses are built on copyright - which protects an expression - not on patent - which protects an idea. (Despite the way some companies are trying to stretch copyright into a super-patent.)
And the open-source social contract (not to be confused with the Social Contract license B-) ) is this:
- Here's what I did. Some nice ideas, and a lot of drudgework to make it run.
- You like it? Use it.
- You tweak it and keep it to yourself? That's fine.
- You tweak it and sell it, or give it away?
- Don't keep the tweaks to yourself,
- don't keep ME from using your tweaks, and
- make sure everybody else who gets it does the same.
- (You want to take the ideas and do your OWN drudgework to make another version run? And sell that? And NOT share the guts? I can't stop you. Just don't use the fruit of MY drudgework in YOUR version.)
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
There's are several big leaps here, but very little insight. How did you come to these conclusions?
The most glaring omission in my eyes is the fact that you don't reconcile the difference between altruisim with traditional goods (ones that have physical identitity and which "go away" when you give them to somebody) and the kind of sharing we do in the "open source" community. Here, "parasites" making copies of our work doesn't reduce our ability to use our own copies. (This is one of the founding principles of the GPL, in fact.) Therefore, parasites aren't much like parasites at all.
I think the GPL is great, personally, but I don't think I follow your argument.
I'm a little surprised and a lot concerned that people seem to have forgotten the main reason Stallman holds the views he does. Check some of his earliest stuff and you will see it.
Simple, isn't it?
Next level: how much software have you had to abandon because the author(s) and publisher (a) went out of business and (b) the source wasn't made available? You then had to move on to something else, go through another learning curve, maybe even spend a lot of time converting old data to the new format. That takes time, brothers and sisters, and time is money. And that's where the word "trust" really comes in: are you willing to bet your livelihood that WhizPublisher and BowToProgrammer will be around in the future?
Then there is the other aspect of "trust," that the publisher and the author(s) will continue to maintain the software, fix the bugs you find, and extend the functionality in ways that are useful to you. A couple of examples will serve to illustrate my point:
EXAMPLE 1: Remember troff, the typesetting program developed for Unix? It was a great piece of work, and did things incredibly well. Unfortunately the author died, so much of the incredible work had to be scrapped because no one else could begin to understand the code (not even typesetter manufacturers -- I watched one guy at Varityper try). Now, if the source had been released widely (fat chance, being a bastard child of a utility regulated by the FCC) there might have been enough of a brain trust developed to fully understand the workings of the original program. Instead, some people wrote a work-alike that serves us today, but loses some really nifty code.
EXAMPLE 2: Microsoft WORD has an interesting history, being the first massed-marketed pieces of software whose beta was bound into a mass-market magazine. (PC World, for those who care about such trivia.) Since that time it has become a definition of bloat, yet there are features professional writers have requested of Microsoft that have not been included. Because Microsoft does not make the source available, there is no way for the technically-minded professional writer to add any of those features that would REALLY make life easier. One of those features, a phrase dictionary, is one reason the legal profession sticks with WordPerfect.
We trust vendors to "do the right thing" but they are under no obligation to do so. Those who say "if you don't like it, go write your own" should be aware that the entry cost for writing a word-processor package is very, very high. Indeed, one reason for the Open Source Movement in general and the GNU Public License (not Virus) in particular is to lower the cost of entry by building a collaborative effort to accomplish a task. Divide and Succeed.
And so we now get to the bottom of why Microsoft and Stallman are at odds. Microsoft wants to hold your productivity hostage, so that THEY can release stuff under THEIR terms and to THEIR schedule. Microsoft has no significant competition in a number of markets, so competition won't keep them in line. (Remember the anti-trust suit?) The ONLY significant competition currently in place is GPLed software, because Microsoft can't "embrace and innovate" something that requires they show their cards for all to see.
The BSD and similar licenses are flawed in that Microsoft can "embrace and innovate" to the point that the original code is lost in the jungle of proprietary extensions that Microsoft would add.
By the way, Microsoft isn't the only company that plays the grab-and-obfuscate game, only the most obvious one.
What Microsoft fears most is that other corporations are beginning to "get it," that the large proprietary corporate model is not the only model for ensuring viable support for software products. The distributed development model, specifically OSS protected by the GPL, provides the same advantages as the corporate (or centralized) development model without the "bottleneck effect" of corporate management prejudice and the cost of "buying" 30,000 programmers.
And what about all those programmers? Banished to the bread lines? Guess again. Some of the most lucrative programming is in applications for specific industries. Corporations are looking to combine off-the-shelf components in ways that improve corporate productivity, and are willing to spend the bucks to make that happen. Look at the insurance industry. Look at the food-supply industry. Banking. Finance. Even waste management.
Want to work on something a little more generic? Try embedded-systems programming. There are still microwave oven controllers to be programmed, not to mention metal-forming presses and the like. Who do you think programs the firewall appliances we use on our cable and DSL feeds? Who do you think creates the new gambling machines now showing up in Vegas and Atlantic City? Even my furnace has a microprocessor in it.
And not to worry, e-commerce isn't dead, it was just overblown. There are lots of jobs there.
So stop crying about loss of jobs for programmers with the GPL. If anything, it will increase the number of programming jobs because the tools will be cheap enough to lower the barrier of cost of entry.
THAT is the blessing of the GPL: it lowers the cost of entry into computing for a number of industries.
PHB: This GPL is broken.
Dilbert: What's wrong with it?
PHB: People keep ripping off our code.
Dilbert: Impressive. You know the word "code".
PHB: I took a 1-day seminar on technology so that I could "interface" with you "techies" better.
Dilbert: So what do you think we should do to prevent the competition from stealing our code?
PHB: Well, I thought if we rewrote the GPL somewhat...
Dilbert: I'll humor you. What did you have in mind?
PHB: Well, the GPL is based on trust.
Dilbert: I can see how that would be a problem.
PHB: So I was thinking we need to emphasize this point on trust more. Can you try capitalizing it?
Dilbert: Sure. It's a computer related thing, so do you want me to capitalize the sEcond letter, or the last letteR?
PHB: Hmm, that might be getting too technical. Could you just, I don't know, italicize it?
Dilbert: [click] [click] Done. You want fries with that?
PHB: Ah, no. This should do it, I think.
Two weeks go by
PHB: Dilbert, I thought you fixed that GPL problem.
Dilbert: I did what you thought would fix it. Strange that it didn't work.
PHB: Yeah, I know... I was thinking... Maybe we need to do something more radical. Could you maybe boldface it? No, no, no wait I have a better idea. A bigger font! That should do it!
You see? You see? Your stupid minds! Stupid! Stupid!
No. Appearing: 1-12
Armor Class: 4
Move: 12"
Hit Dice: 6+6
% in lair: 40%
Treasure Type: D
No. of Attacks: 3
Damage/Attack: 5-8/5-8/2-12
Special Attacks: See Below
Special Defenses: Regeneration
Magic Resistance: Standard
Intelligence: Low
Alignment: Chaotic Evil
Size: L (9' + tall)
Psionic Ability: Nil
Attack/Defense Modes: Nil
Trolls are horrid carnivores found in nearly every clime. They are feared by most creatures, as a troll knows no fear and attacks unceasingly. Their sense of smell is very acute, their infravision is superior, (90'), and their strength is very great.
A troll attacks with its clawed forelimbs and its great teeth. A troll is able to fight 3 different opponents at once. 3 melee rounds after being damaged, a troll will begin to regenerate. Regeneration repairs damage at 3 hit points per round; this regenerationincludes the rebonding of severed members. The loathsome members of a troll have the ability to fight even if severed from the body; a hand can claw or strangle, the head bite, etc. Total dismemberment will not slay a troll, for its parts will slither and scuttle together, rejoin, and the troll will arise whole and ready to continue combat. To kill a troll, the monster must be burned or immersed in acid, any separate pieces being treated in the same fashion or they create a whole again in 3-18 melee rounds.
Description: Troll hide is a nauseating moss green, mottled greed and gray, or putrid gray. The writhing hair-like growth upon a troll's head is greenish black or iron gray. The eyes of a troll are dull black.
microsoftword.mp3 - it doesn't care that they're not words...
The forced openness that the GPL (and other OSS licenses) establishes creates a culture and social order where as an open-source developer you are meatured by the quality of your work on a daily basis by a vast comunity of your peers. In many companies there are 'Code Reviews' where a developer goes into a conference room with a few of his coligues who then proceed to critique his code. In the end, only they know how good or bad it actually is. In the OSS comunity, that group of people critiquing the code is far move vast and generally quite knowlegable. Reputations are built on OSS projects and you're only as good as your most recent release. It's a competitive enviroment that retains a sense of comroderie,, unique to OSS development.
Imagine for a moment of microsoft has the Windows Source Code peer-reviewed in this fashion... There would be riots in the street...
Developers have the opportunity to build great creadibility, and to earn the respect of their coligues in a non-business enviroment, while working to develop truly valuable products for the business and non-business user alike.
The same thing applies with regard to fixes, and patches. Only yesterday, the OpenBSD Project was Chastised for not producing a patch in less than 6 days. Show me one instance where, first the user comunity of closed-source software could creadibly do tat, or is even made aware in a reasonably timely fashion, by corporations, of bugs in their software. Open source is conducive both to discovery of bugs and (tue essentially to a type of peer pressure) the timely patching of those bugs. Again, in the OSS comunity you live and die by the quality of your code.
The GPL goes far beyond game theory. It creates a social structure that facilitates it's successful use. I'd love to hear from some sociologists with regard to the operational characteristics of Open Source Development. I'm sure it would make a fascinating paper...
--CTH
---
--Got Lists? | Top 95 Star Wars Line
It does. But more than that seems shallow. The author jumps from premises to conclusions without any groundwork. Please, some examples of cultures of trust demolished by parasites. Please, some cause-effect data. Even some detailled argumentation would be welcome.
I give him credit for an interesting idea (i.e. the GPL has a "genetical" advantage on other free software licenses and will ultimately prevail), but I think that conclusion should be more grounded, not simply stated.
--
Rome taught me patience and assiduous application to detail. Virtues which temper the boldness of great, general views.
Your comments have made clear to me a fundamental difference between GPL and proprietary software. The difference rests in what the developer of the software expects in terms of a future payoff. Microsoft (or any major software company) develops software will the expectation of monetary revenues. GPL developers write code in the expectation of future software they can use for free. Is it just me or are these two options the extremes of possibility? Isn't there some middle ground where the future payoff could feed the developers stomach, as well as his head?
I much prefer the licensing that Caucho.com has put on Resin. In it, you're only required to pay for the product if you're going to make money off of it. On the other hand, if you're some university lifer who hacks together a great technical document repository, you don't have to pay.
In this scenario, Caucho has decided that their future payoff, either money or free software/services, is determined by their customers. This, I'll call it payoff based licensing (PBL), seems much more pragmatic than the extremist options presented by either Microsoft or GPL. Users of Caucho's software can decide if they want to use it independent of the ideological dogma of the software developer.
Microsoft and GPL are simply sharing opposite ends of the same bed. If you want true altruism, then look towards BSD style licenses that don't impose any restrictions on how you use the software. If you have no restrictions in the license, then you have nothing to enforce. Microsoft and GPL on the other hand, have to be concerned about parasitism (piracy and illegal use) since they are concerned about a future payoff.
The trust you speak of is between the software developer and his/her customer. The developer trusts that in giving the software to the customer, (s)he will receive a future payoff in return. Microsoft and GPL have the same issue in terms of depending on trust and hoping they will see the future payoff. Of course, they diverge some in how they might go enforcing their licenses should the need arise, but the concept is the same nonetheless.
The GPL is similar to proprietary software licensing except that it demands a different future payoff. This and other systems in which the future payoff is rigid and fixed, IMHO, will have a disadvantage to PBL schemes that allow the customer to dynamically determine the payoff based on use. I wouldn't expect any of these systems to die off, but I would expect PBL systems to gain much more market share in the coming years.