back

by chha·10y ago·view on hn ↗
This is quite an improvement from the olden days when a certain Microsoft executive described the GPL as a cancer, and open source in general as a thing to avoid
4 comments
> This is quite an improvement from the olden days when a certain Microsoft executive described the GPL as a cancer, and open source in general as a thing to avoid

Absolutely.

And don't take this the wrong way... I much appreciate the improvements. But there's still a very strong trend that Microsoft code contributions tend to be in MIT or similarly permissively licensed projects. They still tend to avoid the GPL where possible.

(Disclaimer: Have contributed code and patches. I don't personally don't mind permissive licenses)

The problem of these licenses is that they don't come with patents grants. Which given that this is Microsoft we are talking about, it's a big deal.

Of course, their projects does come with a patents license, in addition to the copyright license, but it's unclear to me whether this license applies to derivative works for example. I'm not a lawyer of course and I have a very limited understanding, but interpreting their license as an English text, I really don't think it applies to derivate works. Would like an analysis of somebody knowledgeable, because a project that can't be safely forked isn't open source. Here's their license: https://github.com/dotnet/corefx/blob/master/PATENTS.TXT

Anyway, my point is that I would have preferred something like the Apache License, which is still permissive, but was written by lawyers that know what they are doing and has an explicit patents grant in it. You see, people think of BSD and MIT as being "permissive", but that's only true as far as the copyright law is concerned. Patents are a whole different thing.

Yeah, but when MS used their own MIT-like license with patent grant and nuclear patent option, people hated it. They have made certain guarantees in the past wrt ASP.Net bits and other areas... MS seems to have been mostly in favor of live and let live wrt patents on their open-source software, it would be a colossal mistake for them to sue over patent use on their open-source software, short of defensively against someone suing them over patents.
GPL is a cancer. That's why people vastly prefer something more like the MIT license these days.
Yes. If you're the original copyright holder, you only give others cancer with the GPL. As the the copyright holder, you are licensing your code to others and as such, you subject yourself to whatever terms you want. But those who accept the terms of your copyleft license are bound to all the cancerous viral terms you set.

As a user, I prefer licenses like MIT that just give the code away with some reasonable strings attached. As a pip-squeak creator, I have to admit the copyleft licenses are attractive - the more viral and toxic (like AGPL), the better! I like being able to show off my clean and valuable code and have some reasonable expectation that no big corporation will rip me off. But then, universities and hobbyists will have full run of my code and that suits me fine.

Am I greedy? Am I stingy to think of my code this way? Should I be happy that anyone would see fit to use my code and thus maximize that chance by licensing with MIT? Or is no value ever generated with all the codes being completely free and open? I wrestle with this.

Ooh who? Ballmer?
If you're trying to write commercial software and make money off of it, the GPL is a cancer.

MIT or the MS-PL is much more practical.

To translate

if you are attempting to exploit other peoples code with out giving anything back to the people that created the code then GPL is a cancer

>MIT or the MS-PL is much more practical.

This depends on the project

I normally license my libraries, code I intend to be included in other software under BSD or MIT, but full developed software that is intended to be used as is gets GPL.

>if you are attempting to exploit other peoples code with out giving anything back to the people that created the code then GPL is a cancer

That's bullshit - GPL requires you to open source your derived work as well - which plenty of people have a problem with commercially - it doesn't mean you don't want to contribute anything (quoting you) back.

Even with the LGPL there are scenarios where sharing your code is not an option because of real world constraints (eg. NDAs), for example you need to modify the LGPL code to port to a closed platform. That doesn't mean you can't contribute back other improvements, but anything platform specific can't be released and therefore you can't comply with LGPL.

In general GPL creates a lot of problems to which GPL supporters just plug their ears and mantra "if you were truly free you wouldn't have those problems". Liberal licenses remove those problems and incentives to share back are there without the license requirement, you get your stuff maintained in the mainline and don't have to rebase on every update and reduce conflicts further down the development. LLVM is an excellent example of this where even traditionally closed companies OSS stuff because it's such a chore to keep up with latest. An example of a project being choked by GPL is Blender - a tool that has great potential to be a fully featured OSS 3D authoring package is struggling to fund developers because it can only sustain itself from government grants - nobody is interested in investing in it commercially because of the GPL. If it allowed for commercial plugins the OSS core would undoubtedly see significant contributions from those developers as well.

> In general GPL creates a lot of problems to which GPL supporters just plug their ears and mantra "if you were truly free you wouldn't have those problems".

I'm not plugging my ears. I recognize it, and it's terribly unfortunate that one would ever be in such a situation, but the idea there is that the GPL would encourage the liberation of other code, and other platforms. Here's an example:

  http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/doc/Why-CLISP-is-under-GPL
Now, you're talking about a broader issue than liberating a single program. But enough useful GPL'd software might sway larger systems.

Otherwise, if modifying free software and in doing so making your modified program proprietary means that it can't be used at all, then that is the intent.

Except the GPL doesn't just encourage open sourcing works which use the GPL work as a dependency; it makes the open sourcing of any library/program/what-have-you a MANDATORY condition for use of the GPL work. This has nothing to due with modification of the GPL work; the condition is still in effect when no modifications, proprietary or otherwise, are required in the GPL work.

I'm actually in agreement with Ballmer on this one: GPL is cancer. And I love contributing to OSS in general.

moron4hire is correct.

If you are not distributing the software personally or outside your organization, the GPL does not apply to you. If what you are doing does not constitute a derivative work, then your software is also not affected by the GPL: if you're invoking GNU grep in your program, for example, your program does not need to be licensed under a GPL-compatible license.

For clarification, see https://www.gnu.org/licenses/gpl-faq.html

I am aware of these issues. I replied in-haste in-class, and didn't specify that I was only referring to library code. I instead used 'work', which was the wrong term; I apologize. Anyway, according to the GPL, using a GPL-ed library as a dependency in a larger codebase constitutes a derivative work (assuming distribution etc), thus requiring GPL-ing the whole larger codebase, which isn't cool (imo, of course).
That is completely incorrect. The GPL makes absolutely zero restriction on use. It's provisions only pertain to distribution.

If you are only using GPL'd software, there is no compulsion to release your software under the GPL. If you, on the other hand, are releasing a product to other people and you have found a piece of GPL'd software that provides enough value to you to bother including it in your project, then and only then are you compelled to open your source.

I will give an example where the GPL hurts some projects:

I work on a OpenStack project that does DNS. We have plugable drivers for the different software out there - PowerDNS, Bind9, nsd, etc.

One of the people deploying our software wanted (or needed? - there was some weird legal / support issue) to plugin into Nominum.

Now, to even look at the API ref, or use the Nominum python lib, you need to have a support contract, and agree to not release them. If we were GPL, that user would not be able to use our project, but because we were Apache they could write an internal driver, and still have the same API as other OpenStack users.

> Now, to even look at the API ref, or use the Nominum python lib, you need to have a support contract, and agree to not release them. If we were GPL, that user would not be able to use our project, but because we were Apache they could write an internal driver, and still have the same API as other OpenStack users.

I'm not sure if by "internal" you meant that they were only using it internally. If they're not distributing outside their organization, they have no obligations under the GPL.

Otherwise, yes, the GPL does not allow for distribution under an NDA, because it adds additional restrictions.

Or maybe they would choose to work with OpenStack and discontinue their relationship with a draconian and backward company that locks their API behind a NDA
GPL was never intended for commercial use, in fact it was meant in a minor way to deter the method of business to simply acquire work and to redistribute it as their own through minor changes. Its major effect was for the sharing of code on a free and OSS code base made by the freetime of many, many developers and hobbyists.

Even if Microsoft, big business and ivy league succeed in subverting the software architecture and environment built on the GPL license, hobbyists and developers will still continue developing on it (GPL code) on their free time.

(tldr; commercialization was never a real priority for GPL licensed software. it was the continued community sharing of works through licensed protected open source.)

edit: some developers are just in it for the love of money like m$, others are just in it for love of the craft.

I had considered doing the same thing, but I think pragmatically I'm never going to be able to build a "support" business around my libraries. Hell, I'm not even really interested in that type of business. I've spent most of my career as a consultant, i.e. mostly getting treated like a cost center, so it's not a difficult stretch to see that too much focus on the code as a product unto itself will lead to the same results.

My only chance of getting out of that is probably building my own products and partnering with a group of people who are good at marketing. I think, in large part, selling copies of software is a dead end business. There are some contrary examples, but I think they probably more prove the rule. Does anyone pay for Sublime Text for any reason other than "to support the developers" (i.e. not "because I need this software")? Video games have to be released on a regular schedule. Adobe has all the image processing patents. I think in all cases, people are buying something other than a literal copy of the software. So why not just sell that other thing directly and skip the noise?

On the other hand, assuming I end up making the libraries any good, someone else with a business of supporting software and the mercenary nature of refusing to help people with problems who don't have any money to pay, could probably snipe me in my own software.

So with that in mind, libraries I write always come out under the full GPL-3.0. Nobody deserves to close their use of my code. It has turned some people off (and I think that has more to do with their misunderstanding of what the GPL is practically about than any ostensible flaws in the GPL), but they can go start their own VR framework project for all I care.

Thanks for putting words in my mouth. How many people would have used jQuery, if it was GPL? Full-on GPL taints your software, such that you have to be extremely careful not to use any libraries that are GPL'd if you want to release it under any other sort of license. Sure, you can get exemptions, but can you imagine the clusterfuck if, say, the NPM community defaulted to using GPL? Trying to trace back and make arrangements with the owners of thousands of tiny libraries would be insane.
You are taking an incredibly harsh (and coming across as almost vengeful) position on the GPL advocating a position that misses the point of the GPL.

Software that chooses a copyleft license like the GPL cares for freedom more than broad adoption of their software. I would never want you to help you create non-free software---that's antithetical to everything I stand for. Many feel that way.

You say "trace back and make arrangements with the owners of thousands"---why should you? Why would we want you to do that? Why would we have used the GPL to begin with? I would consider that to be an incredible situation! All these tiny libraries on NPM under the GPL that make it virtually impossible to develop proprietary software because of the infeasibility of working out deals with all the authors---some of which will never agree? That is freedom at its finest! That would be a huge success!

It's great that software like jQuery has had the success that it has. It shares a different philosophy. I don't call that philosophy a "cancer", even though it results in what I consider the worst possible outcome: proprietary software, and often SaaSS at that, which robs freedoms even more.

Please be respectful of others' philosophies. The GPL is the embodiment of ideals and the free software movement---it's more than a license.

I'm really not trying to shit on the GPL and free software, or pooh-pooh any philosophy. You just can't touch anything that's GPL if you build closed-source commercial software. That's kind of my job, and I have to be pragmatic and practical about it.

I'm glad Microsoft is cognizant of the fact that they have legions of partners, vendors, and independent developers that have built their businesses on top of Microsoft libraries and technologies and has chosen appropriate licensing to reflect that.

>> You just can't touch anything that's GPL if you build closed-source commercial software.

That is not true at all and this reflects basically a willful ignorance of what the GPL actually says.

>> That's kind of my job, and I have to be pragmatic and practical about it.

Then you are bad at your job, because you do not know what the GPL means in practice.

How can it be that most of the most valuable technology companies in the world--Google, Facebook, Amazon, just to name a few--are built from the core-up on open source software?

Microsoft has chosen a proper license for their audience, yes.
> Full-on GPL taints your software, such that you have to be extremely careful not to use any libraries that are GPL'd if you want to release it under any other sort of license.

Why would you want to release under any other sort of license? Why do you wish to restrict your users' right to use, modify & share code?

> can you imagine the clusterfuck if, say, the NPM community defaulted to using GPL

That sounds wonderful: an entire ecosystem of free software.

> Why do you wish to restrict your users' right to use, modify & share code?

Not everyone agrees that this is a right.

Possession is nine tenths of the law. You have no right to tell people what to do with their own computers.
>You have no right to tell people what to do with their own computers.

You seem confused. The discussion here is about copyright law and intellectual property licensing. Code is a series of 1s and 0s that can be duplicated at almost no cost. Me "possessing" it doesn't deprive anyone else of anything.

Except, I work on GPL v2 systems, and we can't link to GPL v3 libraries. No other license I've worked with has this incompatiblity problem.
> Except, I work on GPL v2 systems, and we can't link to GPL v3 libraries.

The standard way to use GPL v2 is to use this verbiage:

    This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
If someone doesn't do that, I don't know what to say.
That's the wrong direction. You can use v2 code with that sentence in the license in a v3 codebase, not vice-versa (unless you upgrade your codebase to v3 entirely, but since GPLv2 was explicitly mentioned that probably is not an option for whatever reason).
At some point in the far distant past, someone decided they didn't want to give the FSF the ability to apply any license they like to their software (which is reasonable, the FSF could in principle make GPL v4 -- All your source are belong to us).

While that choice might have been a mistake, it would now be an impossible effort to get all contributor's permission to change, so we are stuck with v2.

If you're a lone developer or small team and you're releasing your code under anything other than a strong copyleft license, you're leaving yourself open to the Joyents of the world to abscond with what you've made and build their business with nothing more than an attaboy to you. I would much rather nobody made money off of my code than somebody else while I still struggle. At least the Mozillas and Googles of the world have the decent politeness to just completely ignore your open source project, no matter how long its been out and how new they are to that particular field, to boulder through and make their own thing.
Nobody can "abscond" with what you've made. It's always yours, it's always accessible to you, and you can always make it better.

Yes, if someone else comes and extends your work and eclipses your production, they're able to decide what to do with it as they want. That's the key point of being open: Letting people do what they want with it.

If anything, I'd contest the claim that copyleft can be considered open source any more than a license that lets you look at the source but doesn't let you modify it. Copyleft controls the source and forces your views on people who want to use it.

Perhaps you could form a community of like-minded developers. Everyone pools their resources together, contributing to the pool according to his ability, and each person shares those resources according to his need. That way, nobody will be able to make money while you struggle and go without.
"If you are a software repository, proprietary license is toxic waste."

"If you write software, proprietary content is a time bomb waiting to kill everyone involved."

Does this kind of language really help anyone? Do you want to be called a toxic waste distributor? Do you like to plant bombs in peoples projects, killing them?

"Many people believe that the spirit of the GNU Project is that you should not charge money for distributing copies of software, or that you should charge as little as possible-just enough to cover the cost. This is a misunderstanding.

Actually, we encourage people who redistribute free software to charge as much as they wish or can. If a license does not permit users to make copies and sell them, it is a nonfree license. If this seems surprising to you, please read on."

from http://www.gnu.org/philosophy/selling.html

You can't practically charge for distribution though - your sell it to one person, and they'll upload it to an FTP archive server.
Sure---that's sharing with your friends and neighbors, and that's a fundamental freedom.

But many/most will follow the project directly. You can offer the source code to build yourself , or provide a convenient binary/installer for those who either don't want to or can't (for example).

This is especially prevalent for mobile OS's, where building is an unfamiliar task or PITA for many, even hackers.

Would I personally? No. But I respect that decision.

Your inability to figure out a competent business model that also respects the rights of users is not the user's problem. You have no right to lock someone's computer down, to prevent them from using the copy of the software that you sold them, and the only way to guarantee that is to require the source to be open.

Look, it probably won't matter anyway. Probably nobody is going to use your software.

The same is true of literally every piece of software ever distributed regardless of license.
False. Because then you can sue that person for the damages incurred by their violation of the license.