Hacker News new | past | comments | ask | show | jobs | submit login
GPL vs BSD, a matter of sustainability (matusiak.eu)
27 points by Tsiolkovsky on Feb 8, 2013 | hide | past | favorite | 61 comments



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?


>and GPL is a kiss of death for many uses.

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.


> GPL guys feel ignore[d], BSD guys feel elated.

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.


There are a lot of for-profit companies that use GPL. I have one myself (albeit a very, very small one).

As for community - I think community is often more corresponding to usefulness of code, not license of code.

That's why there is often a huge "community" around very useful proprietary code.

To me, it's about choosing which kind of community you want and I want the kind that the GPL enables and protects.


(note... I did say large.. my bad... still valid that small companies can't use GPL either)


GPL (same as above)

FAIL.


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.


[all the talk about microsoft really smells of 2007 :)]

> BSD freedom, on the other hand, is "lossy".

How so? I can still download the original BSD-licensed code without any loss.

> If I get BSD code I have a lot of freedom, but the next guy doesn't.

Why? In the worst case the next guy will just start from wherever I started.

> It's fairly well known that there is BSD code in Windows.

And be thankful for that - who knows what else could have crept in there.

> And obviously, whatever Microsoft did with that code, they have no obligation to release their changes.

And no obligation to release all the other unrelated code.

> Microsoft is still sitting on BSD code that is free for them, but it's no longer free for anyone else.

Apple too, but that's what the BSD license is for.


You assume that the original code is still available, which might not be the case.


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.


In that specific case you are right.

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.


GPL operates on the premise that people are generally selfish and evil, and will never contribute back unless forced to.

BSD operates on the premise that people are generally decent, and many (though not all) will contribute back on principle.


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.


Didn't FreeBSD have some problem with fundraising recently?

Apple used FreeBSD to create Darwin, OS X and iOS. Did they end up contributing back?


> Apple used FreeBSD to create Darwin, OS X and iOS. Did they end up contributing back?

Yes, quite a bit. An example, FreeBSD recently switched from gcc to clang as their main compiler. clang was an Apple project.


I still prefer BSD and MIT style licenses.

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.


So do I.

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.


>Some will say if you supply object files so that the end user can relink, that's fine.

It's not "some will say"; supplying object files for your code and source for the LGPL library is specifically listed as an option in the LGPL itself.


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'.


How are you measuring "most used"?


By what most open source code projects are licenced as.


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.


> "So who is right? Well, the BSD camp is."

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.


Please read the whole article before commenting.


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.


From the Guidelines:

  Please avoid introducing classic flamewar topics unless you have something genuinely new to say about them.


The GPL is better than BSD at starting a community of developers, in the same way that games with rules are more fun than Calvinball.


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.


"With GPL you're stuck with the hobbyists and the very few companies that can survive getting paid for support of their GPL software."

Not really mate.

Lots of companies use linux for firmware and release their firmware code. Linksys, Netgear and Western Digital are just a few that spring to mind.


None of those companies sell the firmware. They sell the hardware. The firmware is only useful if you buy their hardware.


So what? They're still commercial entities using and contributing to GPL software, which is what the post I replied to claimed doesn't happen.


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.


The article is from 2007. What BSD code is still in Windows? I know the network stuff was, but I think they re-wrote all of it.

The EULAs used to include sections about the regents of Berkley, but I can't find that in the Windows 8 EULA.


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)


Jesus, haven't seen anyone cite K5 for serious purposes in a long time. That place a cesspit these days :)


"So who is right? Well, the BSD camp is."

Gave up at this line.

As far as I'm concerned the licenses give different freedoms and pointing at one or the other as objectively superior is just dick-waving.


I almost gave up at that line. If you'd continued reading, you'd have found that the author winds up somewhere near your position.


If you bother reading the complete article, they come to an actual conclusion and comparison at the end.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: