Hacker News new | past | comments | ask | show | jobs | submit login

>'The GPL isn't so much fostering or creating an atmosphere for open source development, it creates traps and makes it harder to use the end product. '

Of course it is, it actually ENSURES that the source code stays OPEN. 'traps'??

>'Isn't that the opposite of what you'd want as an open source developer, isn't the idea to spread your code as far and wide as possible, to have people use it no matter where?'

I believe a huge amount of programmers want to provide open source code to open source code projects, not for proprietary projects. Which is why GPL is such a popular licence.

Apple wants to incorporate open source into their proprietary products, that is why they don't like GPL. Apple sponsoring Clang/LLVM development makes perfect sense since they are stuck at gcc 4.2.1 due to not accepting GPLv3, and they will eventually need to update their compiler toolchain (gcc 4.2 branch is old).

Don't take me wrong, I think Clang/LLVM are great projects and although the compile speed advantage it had over GCC has diminshed greatly it's error reporting/diagnostics is really 'best of class' amongst the compilers I've used. The speed of the generated code lags behind gcc however, and it also lacks advanced optimizations such as pgo (profile guided optimization).

I look at it as a great alternative, but GCC remains my main compiler toolchain, partly because of the licence which ensures that all the enhancements done to it will be available to me as an end user but also because of the strong developer support it has from companies like Red Hat, IBM, Google, etc employing full-time developers working solely on GCC.




I believe a huge amount of programmers want to provide open source code to open source code projects, not for proprietary projects.

Why not? Worst case scenario, some people use their software without giving anything back. Best case scenario, improvements find their way back into their code. But none of this can happen if the license is prohibitive.


Worst case scenario, some person/group/company takes you code and makes it a million times better. But keeps it for themselves.


So what? In that case they created a great value for someone (users). No imagine if the code was released under more restrictive license. They don't use, they create nothing greater, and users don't get better product. Whose win is this exactly?


Because that's a false dichotomy. Corporations will always prefer BSD code to GPL code. But there are many examples of corporations contributing GPL code to GPL projects. If the same projects were BSD licensed, then the corporation might have just forked them and their improvements would then not have been made widely available.


You just gave another false dichotomy. Just because a corporation looks to use BSD licensing doesn't mean it won't contribute back. You're attempting to derive intent from a license choice. It's not that simple.


> You just gave another false dichotomy.

No, I didn't. Notice how I used words like "might", implying that the scenario I described is but one of many plausible scenarios.

Certainly corporations contribute code to BSD-licensed projects. But equally certain is the fact that some corporations contribute code to GPL-licensed projects when they otherwise would have kept their code to themselves if they weren't legally compelled to open it.


It's their right. I really can't understand why people find this bad in any way.

If they don't want to contribute, but they are capable of improving the code and making tons of money, great for them.

Developer doesn't really lose anything.


It's a philosophical issue. The original developer who uses GPL often thinks of what they are doing as gifting their work to the world. Having it sequestered into a money making project is rather like seeing the birthday present you bought for a friend sold on Ebay.


They didn't lose anything, but they didn't gain anything either. If they had GPL'd their project, they would have gained improvements. So by choosing the BSD license they've lost potential gains. So it is seen by many as a loss.


Scenario A:

I make my code BSD. A company eagerly writes some proprietary improvements, and then goes bankrupt. Its code is a dead end.

Scenario B:

I make my code GPL. A company grudgingly writes some GPLed improvements, and then goes bankrupt. The community benefits from their improvements.


The company in scenario A isn't the same one in scenario B. If a company isn't going to contribute their improvements to a BSD project, what makes you think they're going to open-source their entire code base just to "grudgingly" use a GPL project?


How do you know they aren't the same company? Who said anything about "their entire code base"? As this article says, Apple distributes plenty of GPL software. Did they release their entire code base?

Let me contrive a hypothetical, if it's still not clear to you...

Imagine you're a ruthless corporation and you don't care at all about the open source community. There is an open source software package that solves 95% of a problem for you.

If it's BSD, you will probably take it, write that 5%, use it, and not contribute anything back.

If it's GPL, you will probably take it, write that 5%, use it, and then grudgingly release that 5% back to the community so you don't get sued.

Note that I'm not saying GPL is always the best option and BSD is always worse. I'm just pointing out that, in your previous post, you miss out on one of the advantages of the GPL: it can encourage the release of open source code that otherwise would not have happened.


Or, if it's GPL, you won't take it, and you will write your own in-house version which you'll never release. That is the more likely scenario.

You're presenting a bit of a false dichotomy. If a company that's adamant against open-sourcing their work can't use a GPL solution, they're not going to shrug their shoulders, use it anyway, and then release their changes. They're going to spend more money on an in-house solution because they have complete control over it and know it won't bite them in the ass in the future.


> Or, if it's GPL, you won't take it, and you will write your own in-house version which you'll never release.

Yes, that's why I said "probably", not "definitely". It's misleading to ignore both possibilities and pretend that only one will ever happen. That's why I made my original post.

> You're presenting a bit of a false dichotomy.

Only if you misread my post.

> If a company that's adamant against open-sourcing their work can't use a GPL solution, they're not going to shrug their shoulders, use it anyway, and then release their changes.

If they're "adamant against open-sourcing their work", then by definition they will never open source anything. So? That's not the type of corporation I was talking about in my post.


> It's misleading to ignore both possibilities and pretend that only one will ever happen.

Then why did you ignore the third possibility?

> Only if you misread my post.

No, that's pretty much the definition of a false dichotomy. You only provided two scenarios when there exist more.

> That's not the type of corporation I was talking about in my post.

Then what did you mean by:

> Imagine you're a ruthless corporation and you don't care at all about the open source community.


> Then why did you ignore the third possibility?

I didn't. I was contriving a hypothetical to illustrate how the GPL can produce a positive result in some cases that BSD-like licenses cannot. That's why I started my post with "Let me contrive a hypothetical".

I even explicitly pointed this out at the end of my post by saying, "Note that I'm not saying GPL is always the best option and BSD is always worse. I'm just pointing out that, in your previous post, you miss out on one of the advantages of the GPL: it can encourage the release of open source code that otherwise would not have happened."

I did this because I knew that otherwise someone would misinterpret my post as saying the GPL is universally perfect in all situations, or that the situation I described in my contrived hypothetical was the only possible situation that could ever occur. I'm not sure how I could have made that more clear.

> > That's not the type of corporation I was talking about in my post.

> Then what did you mean by:

> > Imagine you're a ruthless corporation and you don't care at all about the open source community.

A ruthless corporation that doesn't care about the open source community (which I think describes most corporations, FWIW) is very different than "a company that's adamant against open-sourcing". The former will contribute open source code when it is in their economic best interest, but they won't go out of their way to play nice with the open source folks. The latter will sacrifice their economic interests just to stick to their ideology.


> That's why I started my post with "Let me contrive a hypothetical".

Not here: http://news.ycombinator.com/item?id=3561964 This is the post I originally responded to, so this is the post I was assuming we were talking about.

> A ruthless corporation that doesn't care about the open source community (which I think describes most corporations, FWIW) is very different than "a company that's adamant against open-sourcing". The former will contribute open source code when it is in their economic best interest, but they won't go out of their way to play nice with the open source folks. The latter will sacrifice their economic interests just to stick to their ideology.

That's fair.


If they don't want to contribute any coding work back to the community at large, then let them start from scratch and build something they have full control over. I don't see why the open-source community should have to accommodate them if they're not going to contribute back to that community.


I've seen that happen. I've got no problem with it. In fact I think allowing it to happen is much more Free than the approach favored by the FSF.

The code that I release to the world is my own work product, and it is my choice to make it available to others. If someone else improves on it, that's great. Period. I feel no need to try to dictate to them what they can do with it. That's their work product, and their choice if they want to make it available to others.


> Which is why GPL is such a popular licence.

this may have been true with desktop software but it is a lot less true with web software - where MIT and BSD style licenses are much more prevalent.

I think modern authors are more interested in others using their software unencumbered than they are concerned about some ideological battle or keeping software 'open'.


But GPL for web software is like BSD for desktop software. If you only are running it on a server and not distributing it, you don't have to release your modifications to GPL code. That's why the AGPL exists (but it is unfortunately unpopular).


Have a look at the top projects on Github and note that most (all?) are MIT or BSD licesed:

https://github.com/popular/watched

Modern web developers don't seem to care and prefer to keep it simple. The GPL definitely hasn't adapted well to a web world.


Agreed. I think the only time I ever saw Stallman pussy out on something was removing the SaaS stuff from the GPL3 and separating it off into the AGPL3. Without even the FSF fully behind Free Software ideals in the web world, things seem quite stagnant on that front now.


In terms of JavaScript, using it on a website almost certainly counts as distribution. Imagine if jquery were GPL.


>'this may have been true with desktop software but it is a lot less true with web software'

Oh it still IS true with desktop software, as in applications. Here GPL is pretty much the de facto standard open source licence.

I'm not sure what you mean by 'web software', web applications? If you are talking of frameworks/programming languages then those categories are indeed generally open sourced through MIT/BSD-style licencing or LGPL (where only changes directly made to the LGPL licenced code needs to be open sourced.

>'I think modern authors are more interested in others using their software unencumbered than they are concerned about some ideological battle or keeping software 'open'.'

I think 'modern authors' are being made aware of how companies are increasingly using or even basing their entire existance on open source but not contributing back at anything nearly the same extent. Worse, enhancements are being kept in-house thus requiring duplication of effort in order to gain those enhancements.

I think keeping open source 'open' is absolutely key. In some areas it is less necessary to enforce this through licences, traditionally these have been programming languages, frameworks, single purpose libraries - generally code which serves as building blocks. It also depends on how much you are reliant on/hoping for external help.

When Google releases a video codec or a programming language as open source then they aren't really looking for any contributions, they have enough man-power to develop it all themselves in the direction they so choose. They also have the man-power to match any features of proprietary forks.

If on the other hand you are releasing something which you believe is promising but you need help with it, or you release something finished which can be better, then GPL/LGPL makes perfect sense as you will as an 'end user' be subject to any enhancements done to your code in the form of source code.

Also, while companies undoubtably love 'using' BSD/MIT licenced code, when it comes to 'contributing' GPL seems favoured. Linux, GCC comes directly to mind as projects where companies pay developers to write GPL licenced code. Also companies who later choose to open source their proprietary projects generally seems to favour GPL, for example practically all commercial games which have been open sourced are licenced as GPL.

This brings me to my last point, which is that GPL is great for cooperative development. This is perhaps particularly attractive for large players competing in a field where they want to cooperate on something, obvious example is again the Linux kernel where companies like Red Hat, IBM, Oracle etc compete for the same market but cooperately develop the base product (Linux). I can't see something like this ever working using a BSD/MIT style licence as then they wouldn't be legally bound to share enhancements.


Consider also the possibility that Apple sponsored Clang/LLVM because was written in a way that made it nearly impossible to analyze code exactly as the compiler would. The separation of LLVM and Clang means that Static analyzer in clang is doing the same thing as when you compile.


"I believe a huge amount of programmers want to provide open source code to open source code projects, not for proprietary projects. Which is why GPL is such a popular licence."

I really wish developers would stop calling the GNU "free". If you are restricting the end user (IE: you can't use this in proprietary projects), it's not freedom.

The BSD license is true freedom.


The BSD license forces me to reiterate that license text (AND copyright notices)! How dare they?

PD all the way.</sarcasm-attempt>

(By the way: The end user can use GPL code in proprietary projects - once end users redistribute it, they stop being end users by definition, and only then the GPL requirements kick in)


"The BSD license forces me to reiterate that license text (AND copyright notices)! How dare they?"

Compared to all of the requirements of the GNU, it's nothing. the GNU is like finding out you built your house with nuclear material.

"(By the way: The end user can use GPL code in proprietary projects - once end users redistribute it, they stop being end users by definition, and only then the GPL requirements kick in)"

If you include GNU software in your proprietary app, the second someone asks for your source code, you must give it to them. Once a user has the code, they can compile it and release it for free (The general view of the OSS community is that software should be free as in beer).

If your application is popular enough, this will happen and you will be forced to either go out of business, move onto another product, or charge for support.

It's okay though. It's just pushed app developers like me to only create web services. The result? the end user pays me a monthly fee and need internet access to use it. It actually makes it much easier for me to predict my future earnings.


There are multiple different definitions of the word "free". Deal with it. Pretending there's only one definition of the word "free" and that all other ones are wrong is just stupid flamebait.


"There are multiple different definitions of the word "free". Deal with it. Pretending there's only one definition of the word "free" and that all other ones are wrong is just stupid flamebait."

Okay. I believe DRM is free. If you don't like it you just don't understand the different definitions of "free" (and you might just be a troll).


By "definitions" I was referring to common definitions you can find in a dictionary, not definitions you just unilaterally invent.

Please, Hacker News is not the place for tired old flamewars. Go back to late 90s /. if you want to argue about whether GPL or BSD is more free.


"By "definitions" I was referring to common definitions you can find in a dictionary, not definitions you just unilaterally invent."

I'm not arguing the definition of "free". I'm arguing that GNU means that definition. It does not.

Since the 90s, the GNU has actually gotten more restrictive. The BSD license, on the other hand, has not.

Also, calling me a "troll" will not make me change my mind or silence me.


I never called you a troll. You, on the other hand, did call me a troll.


Calling my opinion "flamebait" implied it. We all know what that means.

Your response also has nothing really to do with our topic at-hand.


It doesn't have anything to do with the topic at hand because the topic at hand is decades-old flamebait that you've undoubtedly seen play out on mailing lists, Slashdot, etc. There's nothing to gain from talking about the GPL/BSD freedom debate that can't be had from a Google search. Literally the only reason I can imagine you bringing this up is to instigate a flamewar.



I've known about the GNU since it's inception. Do you honestly think I don't know about this?

The GNU isn't "gratis" or "libre". This is my point.


How is GNU not libre? Because the end user cannot run GPL'd software for certain purposes with no strings attached?

I'm sure that the point you're raising has been discussed to death in a thousand flamewars, but I happen to be unfamiliar with them. Sorry about that.

Could somebody please sketch out how this argument goes? I will outline my understanding so far, and I will use some jargon and concepts from CS, AI, decision theory and economics, please tell me if that makes me harder to understand:

A1: Community effort is good when it makes people better off (as opposed to achieving some narrow goal).

A2: Most software is community effort, so good software is that which makes people better off. The way to ensure that is to make software free.

B2: Free? Then how would programmers gather resources necessary to support themselves why working in a capitalist economy?

A3: Free is a toxic word. Let's taboo it. Instead, let's talk about what matters to the user who has already acquired software somehow without hurting the programmer:

0. The user has acquired the software without hurting anybody, and it's nobody's business how the software is used, in which manner and to what ends.

1. The user has some software but it's not quite enough to accomplish his task, so he creates the solution using everything at his disposal — and that includes other software he has.

When software is distributed in a form that impedes understanding and editing it, this actively hurts user who is trying to reprogram or extend the software, which is a legitimate manner of use, because every manner of use is legitimate.

2. He wants to help other people (other economic agents), so he uses all the resources at his disposal, including software, to help them. This encompasses sharing software.

B3: But this is a very skewed and simplistic view of economy. Sometimes success depends on hindering your competition (cf. minimax). Sometimes you have to hurt other people to secure your freedoms. Sometimes you have to manipulate the market, withhold information, not do everything in your power to reach the declared goal, not take risks, or take unreasonably high risks.

A4: So what? There are some fundamental rights, and since they don't necessarily conflict, we should simply avoid situations where they do. When that's not possible, we should seek compromises. In the case of software, the right thing to do is to err on the side of more freedom, because otherwise the equilibrium will fall at the point where no further progress is possible, and we don't want that.

B5: Say what you want, but I have I paid job, and my job security depends on me hindering other people's ability to do the same. The best way to do this is not to share the source code I have written. Oh, and by the way, I have an emotional attachment to it, and I cringe to think of somebody messing with it. It is also badly written and I would be ashamed to have it published, but I have no time to clean it up.

A5: This is why we can't have nice things.

B6: Most of hardware is closed source. There is a lot of nice hardware. Some of the nicest hardware is made by some of the most secretive organizations. So you're obviously wrong in your conclusion, and you must have erred in one of the logical steps in your argument.




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

Search: