Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

There are, broadly, two types of FOSS licenses when it relates to commercial usage of the code - let's say the GPL-type and the BSD-type. The first is, broadly, restrictive about commercial usage (by usage I also mean modification and redistribution, as well as creating derived works, etc.) of the code under the license, and the second is much more permissive.

As I understand, the idea behind GPL-type licenses is to encourage people to abandon the proprietary software model and instead convert to the FOSS code, and the license is the instrument to entice them to do so - i.e. "you can use this nice software, but only if you agree to come to our camp and play by our rules".

What I want to ask is - was this strategy successful so far? I.e. are there any major achievements in the form of some big project going from closed to open because of GPL or some software being developed in the open only because GPL made it so? How big is the impact of this strategy - compared, say, to the world where everybody would have BSD-type licenses or release all open-source code under public domain?

Note that I am not asking if FOSS model is successful - this is beyond question. What I am asking is if the specific way of enticing people to convert from proprietary to FOSS used by GPL-type and not used by BSD-type licenses was successful. I also don't ask about the merits of GPL itself as the license - just about the fact of its effectiveness.

share|improve this question
3  
The GPL makes no restrictions on usage. It is only distribution that it makes restrictions on. –  whatsisname Dec 29 '10 at 5:17
1  
The contrast should be with proprietary software, not commercial. Lots of commerce going on with free software. –  Lars Wirzenius Dec 29 '10 at 10:23
2  
˙sı ʇı ʇɐɥʍ uo ɹǝƃuıɟ ʎɯ ʇnd ǝʇınb ʇ,uɐɔ ı ʇnq 'uǝʇʇıɹʍ sɐʍ ןdƃ ǝɥʇ uǝɥʍ ɯoɹɟ ʇuǝɹǝɟɟıp sɯǝǝs pןɹoʍ ǝɥʇ ʇnoqɐ ƃuıɥʇǝɯos –  Tim Post Dec 29 '10 at 11:54
add comment

7 Answers

up vote 6 down vote accepted

First, there is an inherent subjectivity in the question - there is no way to know for sure, and history can be interpreted either way. This is an old debate, and one of the core issue in the debate open source vs free software. You also need to define what you mean by reaching its goals. It is difficult to argue that GPL and the FSF has not contributed to make open source a significant movement of the last 2-3 decades. It has not reached its goals of all code being free software, though.

The paragon of GPL softwares are of course linux and everything coming from the FSF (gcc, etc...). Interestingly, for linux, the GPL was not chosen for its political stance, but because of the idea of reciprocity, as stated several times by Linus Torvald. I give you my code, but you have to give me yours in exchange if you use mine.

As far as linux itself goes, I think the GPL have been very valuable - a recent example is BTRFS, the new fs developed inside Oracle. The main writer of BTRFS has stated that the only reason Oracle agreed in the first place to use GPL is because it did not have a choice. The bigger question is whether linux itself became successful because or despite the GPL. Various factors such as Linus incredible leadership, copyright issues for the *BSD project at that time, etc... make the hypothesis impossible to prove/disprove.

For gcc, Stallman has written several times why the GPL saved the project against "propietarization".

share|improve this answer
2  
Stallman has written several things that are brilliant. He's also written several things that have a dubious connection to reality. Him claiming that the GPL saved gcc against "proprietarization" does not necessarily make it so. –  JUST MY correct OPINION Dec 29 '10 at 13:06
    
sure, but this is true for whatever claim you will make on this topic - eventually, it will depend on your own opinion on the matter. I don't think there can ever be a definite answer, especially since the question ramifications are ideological in nature (for both GPL and BSD/MIT like licenses). –  David Cournapeau Dec 29 '10 at 14:09
    
Oracle example is a valid one, thanks. As for Linux success, I have my doubts that GPL mattered much since there are obvious examples of BSD-licensed OSes. They are somewhat less popular, but I highly doubt GPL is the reason. As for gcc, I'm not sure what exactly 'proprietization' means here, but Intel has its own proprietary compilers (better than gcc), so if Stallman wanted to prevent this scenario, he failed. –  StasM Dec 29 '10 at 19:31
    
I meant that if gcc were e.g. BSD, people could add their improvements without giving the code back to the community. GCC is (was) written in a way such as extending it without integrating it with private API was difficult to prevent this (gcc.gnu.org/wiki/GCC_Plugins). –  David Cournapeau Dec 30 '10 at 0:56
add comment

Looking at The GNU Manifesto, it's not clear that convincing corporations to release FOSS software was one of the goals. Here's a quote:

So that I can continue to use computers without dishonor, I have decided to put together a sufficient body of free software so that I will be able to get along without any software that is not free.

If we just look at that goal, then the GNU project has largely succeeded. We have a GPL OS, an office suite, databases, and many other applications that can be freely modified and redistributed.

share|improve this answer
    
As I understand it, the ultimate goal is to make as much software as possible to be free, and since a lot of software is written by commercial entities, it is an important sub-goal to make it free too. If the goal were just to write a body of software to be used without need for non-free software, why not just put it into public domain? Obviously, the viral nature of GPL has some goals that are not achievable by PD or even BSD license. What do you think these goals are? –  StasM Dec 29 '10 at 19:27
    
The GPL prevents the "embrace and extend" strategy, so that someone can't take, for example, Emacs, add extensions that become so popular that they can't be lived without, and release the whole thing under a proprietary license. That said, the GNU manifesto lays out quite clearly what the goal of the GPL was, at least originally. –  Larry Coleman Dec 29 '10 at 20:16
add comment

I do think that when people think of GPL they think in the gnu ideals, in which the software should be a free think, so that ideas would spreed out, and that the big companies are the bad guys because they don't allow that. The problem is that way of thinking does not buy many programmers because they just want to code they stuff, have they programs and also they own life, that does not necessarily involves software, under that view BSD and the other licenses are much more attractive, in the same sense that Linus is more popular than Richard Stallman for the developers, Because the first just wants to do his thing (like many of us), while the other wants to try to change the whole world. So in the end the GPL is like Mikhail Gorbachev, someone that starts the evolution but is not destined to see it succeed.

share|improve this answer
add comment

I think both (GPL and BSD-type licenses) are both important for the FOSS-world. I see usage of the GPL in two groups. One is the group of very engaged Open-Source-supporters. They believe, that the possibility to turn Open-Source again into proprietary work will damage the OSS-world. I personally think, that's not the big problem. PC-BSD (a proprietary BSD-variant) doesn't damage the BSD-community. The second group that adopts the GPL are big companies. They use the license to keep more control over the product (to support their business-model for instance). The competition will have problems, to earn money with someone elses GPL-licensed software-product. So the company can stay ahead of competition, while earning good karma for Open-sourcing it's product.

share|improve this answer
2  
you forget the third camp, which I think is quite significant: reciprocity. That is, you don't care about proprietary software, but you don't want your code released as open source to be used in proprietary. GPL gives you that, BSD does not. That's the camp I am in, at least. –  David Cournapeau Dec 30 '10 at 1:04
add comment

My personal perspective is one of an individual developer, not employed for some time due to disability, and hoping (or dreaming) of being able to make a living again from the only valuable skill I have.

GPL is used for commercial projects all the time. The issue is what is sometimes termed its "viral" nature, meaning that if you use some GPL code in a project, you probably need to GPL all the code for that project. Some claim an exclusion for dynamic linking. The GPL FAQ claims dynamic linking to plug-ins is banned due to shared data structures - http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins. This seems odd as every Windows application dynamic-links to Windows components and shares data structures with Windows (an application is in many ways an operating-system plugin), yet there are GPL Windows apps including plenty released by GNU. Maybe this means disguising pointers as handles and doing most accesses via functions doesn't count as sharing data structures, which would be a loophole any specially designed plugin API or dynamically linked library could presumably exploit, but obviously an individual developer has to play it safe over such issues.

Anyway, there's good reasons for the "viral" nature of the GPL, but for a small developer with a desperate need to earn a living, this looks suspiciously like giving away your work for nothing. We can't all make money by charging for support or selling effectively-the-manual books since, among other issues, we don't all have the relevant skills. Also, if your product has an inadequate free manual, the real-world manual will probably end up being Stack Overflow or Superuser or whatever - not your paid-for manual. And that's assuming anyone bothers to figure it out at all.

From that point of view, BSD-style licenses are very attractive. I admit it's hypocritical to exploit other open-sourced work yet keep the resulting products closed, but that has to be balanced against other issues.

OTOH, I've never actually released anything, open or closed - at least not since a bunch of plugins that I basically made public domain about ten years ago (and as the extra years of experience taught me, they weren't so well written). So the whole thing is academic for me, at least for the moment.

Still, every time I look at a library with a GPL-style license, my first thought is "if I get dependent on this, I limit my options".

share|improve this answer
    
The Windows core libraries aren't under the GPL, so you don't have to GPL your application if you link to them. I'm not sure what license they're under, but it's not one that says, "Your application must be closed source if you link to this." The problem is only when linking to a GPL library. The Windows libraries are not GPL. –  jsternberg Dec 29 '10 at 8:01
    
My point is that the application (effectively an operating system plugin) is under the GPL. If it's banned to write a GPL plugin for the non-GPL Photoshop (because you can't release the Photoshop source), why isn't it banned to write a GPL "plugin" for the non-GPL Windows? For example any command-line application run on Windows dynamic-links to DLLs such as user32.dll, and shares data structures (at a minimum, strings) with the console I/O APIs. This access may be done indirectly, via standard library APIs, but there are standard library implementations distributed under GNU licenses too. –  Steve314 Dec 29 '10 at 8:55
    
Actually - I think there are standard libraries under GNU licenses, but I'm not sure that means GPL. –  Steve314 Dec 29 '10 at 9:19
1  
@Steve314: Read the GPL more carefully. You're allowed to link to standard system components, although I don't remember the exact language. The GPL was carefully designed for practicality - practicality in promoting a certain ideological view, but practicality nonetheless. –  David Thornley Dec 29 '10 at 16:14
1  
@steve: forget about linking, etc... The GPL never refers to this (the LGPL does). GPL says that a derived software must be released under the GPL, where derived is purposedly left undefined, though the idea is that if a software cannot work without the original without being significantly altered, it is derivative. If you build an application on top of an OS, the OS is not a derivative of the application (the relationship is not reflective) –  David Cournapeau Dec 30 '10 at 10:01
show 1 more comment

The GNU GPL has been successful despite its FLOSS enforcement, not because of it. Companies are for the most part voluntarily contributing to and releasing code under the GPL. There are no significant algorithms and libraries covered by it, which would compel commercial developers to deproprietarize.

Apple makes a good example. They've adopted KHTML and furthered it into WebKit. And they released the code back to the open source community. While one could assume this is because they were forced to by the LGPL, it seems unlikely. For Darwin and the BSD userland they very voluntarily publish the code. And with LLVM they even started a brand new FLOSS project. Yet obviously Apple remains largely a proprietary software vendor.

Android is similar. Of course hardware support plays an important role here, but Google could have adopted a BSD codebase and took it proprietary. But they picked Linux. Thus they willingly contribute back, not because there wasn't a non-GPL alternative.

Openoffice is a more interesting story, because it was indeed proprietary at one point. But again, the LGPL-conversion was voluntary, not necessary. The *GPL-type license however made it possible in this case. An academic BSD-type license would not have been sufficient for Sun to release Openoffice, because someone else might have proprietarized the code then. And in this regard, the GNU *GPL has been successful.

The reciprocal/viral clause doesn't directly lead to more open source code. But software vendors use it to their advantage when they want to, and therefore contribute to the FLOSS pool. Yet most vendors do that unsolicitous. I see little difference between BSD-style and GPL-style licenses in regards to encouraging more code contributions.
In conclusion the GNU GPL has been successful, but also propeled the BSD/MIT-style licenses where those are more appropriate. But you can also simply measure the success in "quantity of code", which I believe is the actual FSF metric.

share|improve this answer
4  
Funny you should mention Android, as it went out of it's way to deliberately find a loophole in the GPL which allowed them to release an unmodifiable platform. (Something which later versions of the GPL restrict). Google absolutely do not share the same ideals as the FSF, and the fact that android is FOSS software is largely irrelevant, because nobody has the resources to compete with Google on thier own platform (If they had competition to be worried about, they would've chosen an alternative solution). Also, Apple did not start LLVM. –  Mark H Dec 29 '10 at 1:28
    
@sparkie: That's interesting. Just yesterday I've read an article where a Google developer slammed the handset vendors for locking mobiles against third party Android firmwares. (Though I have no doubt that Googles open source efforts are mostly presentational.) –  mario Dec 29 '10 at 1:33
    
Let's not forget one of the biggest GPLed projects, Linux. None of the big vendors that added their code to it (IBM, Oracle, etc) had an option to fork and appropriate an 'enhanced enterprise-grade kernel', they had to make it public. But probably such universal infrastructure pieces is about the whole area where GPL is more useful than BSD-style licenses. –  9000 Dec 29 '10 at 4:08
add comment

I would say that unrestrictive licenses such as the BSD, MIT and Apache licenses have done far more to promote FOSS than the GPL has.

Examples:

  • Castle Project,
  • jQuery,
  • SQLite,
  • Apache,
  • Hibernate and nHibernate,
  • ASP.NET MVC,
  • JSON.ORG,

and many others.

Most businesses are too wary of the GPL to allow GPL code anywhere near their development effort, unless the business itself actually works under the GPL/value-added-services model.

share|improve this answer
5  
Couldn't agree more. –  configurator Dec 28 '10 at 23:49
1  
I would also mention the LGPL license, which addresses some of the issues with standard GPL: en.wikipedia.org/wiki/LGPL –  andre Dec 29 '10 at 0:07
    
How do any of the above promote the adoption of FOSS licensing? –  Mark H Dec 29 '10 at 0:42
    
@sparkie: Because it opens up the software to smaller corporations which can turn around and use them. Smaller businesses have trouble affording the costly alternatives, so a program that is free and also free to use is valuable... and thus increases the need for such software. –  Nathan Osman Dec 29 '10 at 1:49
9  
I don't understand this answer: how come listing a couple of projects prove that BSD/MIT has done more than GPL for open source ? You could get a similar list for GPL projects (linux, gcc, gnome, kde, qt, mysql, emacs, etc...), and it would not prove anything w.r.t. GPL either. –  David Cournapeau Dec 29 '10 at 12:28
show 6 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.