I think it's pretty obvious this is a 5 year old article. And in fact, it has ideas that are much more appropriate to 10 years ago than today.
GPL is a hindrance to your code, not a help... unless you're lucky enough to have your code become popular with a large open source community.
GPL prevents any proprietary software maker from using your software. It requires that if you use the code, your software also be GPL. Well, good luck with that. Software companies need to make money for a living, and most of them want to do it selling their software, not hoping someone will pay them to support their software.
In practice there's no difference between BSD and GPL in the worst case, and in the best case, BSD is better.
Worst case:
Some awesome devs make Cool GPL Software™.
Hundreds of large proprietary software companies like the look of the software, but it's GPL, so they can't use it. They use something else.
Cool GPL Software™ loses out on all the manpower that could have been given to it by proprietary software makers.
vs. BSD:
Some awesome devs make Cool BSD Software™.
Hundreds of large proprietary software companies like the look of the software, and use it, but never open source their changes.
Cool BSD Software™ loses out on all the manpower that could have been given to it by proprietary software makers.
end result: the same, but the BSD guys feel butthurt, and the GPL guys feel ignored
Now, the best case, which is what actually happens quite often these days:
GPL (same as above)
vs. BSD:
Some awesome devs make Cool BSD Software™.
Hundreds of large proprietary software companies like the look of the software, and use it.
Some of them contribute their work to the original BSD project, because it's good karma, good publicity, and keeps the community around that software alive.
Cool BSD Software™ gains a bunch of hard work from devs who get paid to work on their software 40+ hours a week.
end result: GPL guys feel ignore, BSD guys feel elated.
This is why I'll never use GPL for any software I write.
"GPL is a hindrance to your code, not a help... unless you're lucky enough to have your code become popular with a large open source community."
On the contrary. GPL helps those people that I want using my code to do so. Namely, those people who would contribute code back under the GPL. The GPL encourages them to do so, while BSD hurts this cause. So it's BSD that is a hinderance to my code, not GPL.
"GPL prevents any proprietary software maker from using your software."
Good. They can go fuck themselves.
Proprietary software makes can pay programmers to write software for them. I'm not going to help them for nothing if they're not going to contribute any changes they make back.
"Software companies need to make money for a living, and most of them want to do it selling their software, not hoping someone will pay them to support their software."
They're welcome to try to make that money without my giving my code away to them for free.
"In practice there's no difference between BSD and GPL in the worst case, and in the best case, BSD is better."
You're dreaming. GPL has proven its value time and again. The only reason to use BSD is if you want to help someone make a profit for free, without them contributing anything back, and let your own code be assimilated and made closed-source. I choose not to do that, thank you very much.
"Some awesome devs make Cool GPL Software™. Hundreds of large proprietary software companies like the look of the software, but it's GPL, so they can't use it."
Once again, fuck large proprietary companies. I have zero sympathy for them, and aren't going to be slaving away for them for free.
I never said large. Small proprietary companies also can't use GPL. I guess, fuck them, too? Fuck anyone who wants to actually make money writing software for a living? How very 1998 of you.
Doh, I did say large. Well, crap. How about "thousands of small proprietary companies..." ?
Still doesn't mean I owe them anything, if I want to give away code for proprietary companies to use then that's genererous and perfectly fine.
Likewise there's not something wrong with with only writing open source for open source, where you will be priviledged to have any enhancements made to your code available to you.
And if 'you actually want to make money writing software' then you really can't demand that there should be code lying around for you to use and sell.
Complaints about people not wanting to write code that proprietary companies can use for free and sell simply appals me. As if the 'companies' should have some god-given right to use open source and make money?
> Some awesome devs make Cool GPL Software™. Hundreds of large proprietary software companies like the look of the software, but it's GPL, so they can't use it.
Yeah, good think Linux is BSD, otherwise it wouldn't have any companies writing code for it. Oh wait...
The only reason Linux being GPL is not a big hindrance is because most people use it as a black box to run independent code on. The barrier between GPL and non-GPLd code matches neatly with "stuff we'll never touch". With most software, being popular means you're a library, and GPL is a kiss of death for many uses.
Edit: And yes, there is LGPL, but its language is completely unsuitable for anything non-binary, like scripting languages, and hence could use some updating. If I import a node.js module into my namespace, am I merely linking to it or not? What if I start monkeypatching it?
GPL is a 'kiss of death' for proprietary uses. So yes, needless to say, if your code is aimed at being used by both open source AND proprietary then GPL is NOT the choice.
However if you are not interested in supporting proprietary programs with code and want access to any enhancements made to the code you've released then GPL is a perfectly valid choice.
The argument ignores that GPL is a giant stink eye for many people. It deters people from wanting to make enhancements in the first place... there's no point in having rights to enhancements that are not being made. It doesn't matter if technically they could still use it without violating the license, they simply do not want to.
GPL works great until someone builds a superior non-GPL-licensed alternative. Then it becomes irrelevant.
'And permissive licences is a giant stink eye for many people. It deters people wanting to make enhancements in the first place.
There's no point with enhancements being made when they are kept under proprietary lock and key.'
There, your arguments hold no water. There is no 'right' or 'wrong' licence, there is only the needs of the code author/owner.
And if someone builds a 'superior' alternative then it doesn't much matter what licence it uses, the point is it being 'superior' code which in turn is what would make something 'irrelevant'.
Is clang getting more popular because it is superior, or because its license encouraged commercial interests to invest into it?
Also, you seem to equate a permissive license with 'lock and key'. My experience is the exact opposite, having released software under both GPL and BSD-style licenses.
I've received tons of emails from people asking me to change the license on a piece of GPL code over the years. Nobody's ever asked me to make something GPL that wasn't.
It's a pretty good indicator that the GPL prevents people from getting shit done, but that few people other than idealists of the Stallman type really care about it.
There are commercial investments in GCC and has been so for a very long time, we have IBM, Google, Red Hat (of course) and others employing full-time GCC programmers.
>Nobody's ever asked me to make something GPL that wasn't.
Why would they? If you've licenced it permissively they can include it in their GPL licenced if they so wish. It doesn't affect their decision in licencing their code as GPL.
>Also, you seem to equate a permissive license with 'lock and key'.
No, I was pointing out that enhancements done to permissive code which is not being open sourced is in no way better than your assumption that if something is GPL then chances are enhancements will never be made. On the other hand, if there are enhancements made (and distributed) then GPL makes sure those enhancements will be open sourced and available to all recipients.
>It's a pretty good indicator that the GPL prevents people from getting shit done, but that few people other than idealists of the Stallman type really care about it.
I'll counter your anecdotal evidence with the following anecdotal evidence:
Linus Torvalds and lots of other Linux kernel developers have stated numerous times that they think GPL(v2) is a 'perfect' licence and they attest alot of Linux success to that very licence choice.
Now I don't understand why some people (like you) are so adamant at attacking other licences other than your particular preference. GPL and BSD/MIT etc are great licences which are generally being preferred for different types of code. GPL is mostly used for 'self-contained' projects (typically applications) while permissive licences are mostly used for component/framework/library style code.
People _choose_ to licence their code under these licences, it's not unusual that people licence some of their code under copyleft and some other code as permissive. Choice is good.
Well that's quite a big "speak for yourself" if I ever saw one.
If you're only in it for being recognized, ANY project you embark upon will be a huge disappointment, at least for quite a long while. On the contrary, I think most FOSS projects solve a need, particularly (and yes, sometimes only) for the lead developer. If it solves the needs of others, they will jump in. The license doesn't really enter into that part of the equation. It's only about whether or not you want to make a call on what that community around your work looks like and evolves.
You're very much forcing the argument by making it all about the attention of "large proprietary software companies". But there are... other entities besides large proprietary software companies and I rather enjoy seeing where those people are going.
I didn't mean they care about recognition... I meant, no community forms around their product, because a huge portion of the developers that would like to use it, can't.
I never said "large" companies. Small companies can't use GPL in their software either, if they want to sell their software. For-profit companies aren't evil, in fact many of them do a lot of good things, including contributing back to open source projects with time paid for by their closed source products.
I think the mindset of "all for-profit companies are evil" is a very 2003 way of thinking.
The important thing to realise about the GPL's freedom is that it is not so much "freedom for the developer" as preserving "freedom of the user". To keep software in the ecosystem free and to allow any user to see the source code of a piece of software running on their computer.
Of course I can see the value of both type of license and each has their place. In my lovely land of Linux/KDE/Firefox/GNU the GPL is fine for everything since you don't have to worry about pesky companies wanting to incorporate your end-user code into their products. However, for a library which you might want to be used by commercial game developers etc. a BSD-style license makes lot more sense as otherwise people will go elsewhere or implement it themselves. This is why a few years we switched the license of PolyVox (http://www.volumesoffun.com/polyvox-about/) to be zlib rather than GPL.
In that case it's exactly the same as if Microsoft never used the code... it would still have disappeared. That's what would have happened if it were GPL code. Proprietary software vendors can't use GPL code, because there's no way they can use it without making their entire product GPL... which most software vendors won't do.
But in the case of (for instance) the Linksys NSLU2 (or various WRT and WAG models), the whole community around them was possible because the code was available and people could mess around with it. In this case it was to Linksys advantage to use GPL firmware, to the users advantage that more could be done with the device, and to the community's advantage because changes and improvements could be fed back to the general linux ecosystem.
Linksys sells hardware, not software, it's not a valid comparison. People can copy their software all they want - they still have to buy the hardware to run it on.
No, because you could still get the code from Microsoft, assuming the original code would be gone for whatever reason.
Commercial vendors could always make use of LGPL if they distribute the software. Unless they are using languages like Go.
As for server side applications most vendors are just lechers. They use the code because they don't pay anything for it and most never return anything back, regardless of the license being used. This is my Fortune 500 experience.
Quite to the contrary. I prefer GPL code and don't think people are generally selfish and evil.
I do think that "the market" does that to people - It is often very profitable to be selfish and evil and the question is whether you have it in you to allow your fellow humans to fall into that trap or not. And whether you think it's good for society that this mechanic of the market exerts so much influence.
I have chosen against that. Might be foolish, but I think it's rather pragmatic.
GPL is great for making a system remain open, yes, but it also results in some commercial applications shying away from it, and it might ultimately die without proper use.
Game Developers love BSD/MIT, and they do contribute back to the BSD projects they use for several reasons.
And what matters in the end, that is reach end users, means that those end users would not have all those cool games without BSD and MIT tech available.
I think many GPL-leaning people generally agree that BSD-style licenses are very useful for e.g. reference implementation libraries of open, royalty-free data formats. We want the open formats to succeed, so if we make it dirt simple to put support for it in commercial systems we help the proliferation of the format.
Mostly I run away from GPL code, whatever I do I can't choose to make it available or not, I have to, I consider that a restriction of my freedom, and while I would like that everyone who makes changes or improvements to any of my code to contribute back, I think it's unfair to force them to it, because I don't want to be forced either.
Most of my stuff is BSD or MIT, and for some less serious things WTFPL.
GPL has that "viral" effect that I hate, you are free to change but you have to keep it GPL, I don't know if it is possible to change GPL software into non GPL, can anyone tell me more about that?
The only way to convert from GPL to a different license is for all the copyright holders (approximately every contributor who has a single line of code in the project) to release a version with a new license. For projects with a small number of contributors this is simple, just call them up and negotiate a proprietary license. I expect that there would be better chances of success if the proposition was "money for license" instead of a plea to go to a BSD-like license. Of course the more contributors the greater the likelihood one of them will reject the offer and thereby make dual-licensing impossible.
Author of this article is missing LGPL entirely. LGPL allows anyone to ensure that all changes to his code are published freely, but also allows packaging with commercial closed-source code into single downloadable file (unlike GPL).
That's not entirely true. The LGPL requires that the end user be able to re-link the product with an API-compatible version of the LGPL-licensed library.
On platforms that support dynamic linking this is easy to allow - just package the LGPLed library as a dynamic library the user can easily replace. On platforms that don't (e.g. iOS) it's harder, and I believe it's still 'gray' what's required in practise - or even if the requirement is possible to satisfy. Some will say if you supply object files so that the end user can relink, that's fine.
yes - but that option is followed with "...so that the user can modify the Library and then relink to produce a modified executable containing the modified Library."
[LGPL 2.1, section 6a]
Can an iOS user do that? I would not like to depend on saying "Yes" to a court.
This whole idea started because copyright is broken. Both licenses are artifacts of this. The original copyright had a term of 14 years, a reasonable balance when granting a limited monopoly. As they extended the term and strengthened the laws, there is no longer any balance and there is nothing limited about the monopoly.
Somewhere in all of this, their is an ideal copyright law with ideal terms and limits which maximizes the progress of science and useful arts.
I believe the success of the BSD license shows it is closer to the optimum than the GPL.
>I believe the success of the BSD license shows it is closer to the optimum than the GPL.
Well the GPL licence is the most used open source licence of all, so I'm not sure how 'the success of the BSD licence' would somehow show it as being closer to the 'optimum'.
In theory you could have a million projects used by very few people under one licence, and a few projects used by very many people under another licence.
It might be interesting to know how many people use software under each licence.
Not only is it interesting, it's a better metric when determining the value software brings to society. This is about the optimum in 'promoting the arts and sciences'. The project count is irrelevant.
More than that, the original copyright was something you paid for, it lasted 7 years, and then you paid more for a one time extension of another 7 years. So some things fell into the public domain even faster than 14 years.
Unfortunately, it's not quite that black and white.
When it comes to operating systems, for example, I believe in using "the right tool for the job". Depending on the situation, that might be Windows, Mac OS, or Linux.
The same holds true with the BSD vs. GPL argument. In some cases, the BSD is the better license. In others, the GPL is.
Personally, I am thankful the GPL exists. Were it not for the GPL, I would not be typing this comment on this laptop running Debian. However, my MacBook Pro and iPhone are sitting just a few feet away from me. I likely wouldn't have either of those if it weren't for the BSD License.
As a user, I am thankful for those who release their code under the GPL. As a developer (and I use that term very loosely), I put any code I publish under the BSD license. I do not care what anyone else does with it -- if someone can use my code to improve their own commercial product, so be it.
The BSD vs. GPL debate will never die because there is no one "winner" in all cases -- and we all benefit from that.
Yep, my mistake. I got that far, started my comment, and got distracted by the phone. When I hung up, I looked back at my comment, thought I was done, and submitted it... then realized I hadn't finished reading. My bad.
Not if you want to leverage the millions of professional software developers out there. With GPL you're stuck with the hobbyists and the very few companies that can survive getting paid for support of their GPL software.
You know what's BSD/MIT licensed (or similar)? Python, Ruby, Rails, and probably a million other things you use every day. Good software is good at making a community of developers, regardless of the license.
And there's probably a million things you use every day which is GPL licenced.
Bottom line is that both licences are in wide use while focused on different types of code, permissive licences (along with LGPL) are more targeted at framework/library code while GPL is more targeted at fully self-sustained solutions.
They both have their respective strengths, and it's not as if you can't have professional software developers cooperating under the GPL, Linux is a prime example of that.
GPL is not just stuck with hobbyists. It also can rely on college students, of which there is a seemingly never-ending supply.
Eventually the students will either have to find a job (assuming they are not being perpetually subsidized by Mom and Dad), or become leaders in the GPL community and make money by writing books and doing speaking engagements; and since there is only room for so many leaders, only the most fervent ideologues will rise to the challenge.
AFAIK only the network stuff was, up until XP and Server 2003. They rewrote all of that for Vista, partly because the original code didn't keep up well with newer developments.
Nearly correct according to http://www.kuro5hin.org/story/2001/6/19/05641/7357 the initial code was provided by Spider but since NT3.5 it's been mostly (see the article for why I say mostly) MS code in the kernel (and the userland code is BSD 'cos it works and ain't broken)
Why would I bother, the conclusion has been declared in the first section, and as the guy says - we've all witnessed enough flame wars in the last 20 years to know the arguments inside out.
The article was written five years ago, and we still haven't stopped the arguments, therefore it doesn't say anything revolutionary.
--edit-- I've done as you asked now, it's not as long as I thought it was at first glance.
Conclusions aside, I disagree that with the statement that BSD is freer license, because the GPL guarantees the transmission of freedom, which BSD does not. The BSD license provides (almost) absolute freedom to the individual holding the code right now, which the GPL does not. I don't think it's possible to declare one objectively more free than the other. I'm not sure it's useful to either, apart from in the context of a flamewar.
GPL is a hindrance to your code, not a help... unless you're lucky enough to have your code become popular with a large open source community.
GPL prevents any proprietary software maker from using your software. It requires that if you use the code, your software also be GPL. Well, good luck with that. Software companies need to make money for a living, and most of them want to do it selling their software, not hoping someone will pay them to support their software.
In practice there's no difference between BSD and GPL in the worst case, and in the best case, BSD is better.
Worst case:
Some awesome devs make Cool GPL Software™. Hundreds of large proprietary software companies like the look of the software, but it's GPL, so they can't use it. They use something else. Cool GPL Software™ loses out on all the manpower that could have been given to it by proprietary software makers.
vs. BSD:
Some awesome devs make Cool BSD Software™. Hundreds of large proprietary software companies like the look of the software, and use it, but never open source their changes. Cool BSD Software™ loses out on all the manpower that could have been given to it by proprietary software makers.
end result: the same, but the BSD guys feel butthurt, and the GPL guys feel ignored
Now, the best case, which is what actually happens quite often these days:
GPL (same as above)
vs. BSD:
Some awesome devs make Cool BSD Software™. Hundreds of large proprietary software companies like the look of the software, and use it. Some of them contribute their work to the original BSD project, because it's good karma, good publicity, and keeps the community around that software alive. Cool BSD Software™ gains a bunch of hard work from devs who get paid to work on their software 40+ hours a week.
end result: GPL guys feel ignore, BSD guys feel elated.
This is why I'll never use GPL for any software I write.