Hacker News new | ask | show | jobs
by sgift 3018 days ago
"The right thing to do" from a programmers perspective is to never use any dependency which uses anything with *GPL as its license if they can use something else instead. Sometimes, the only viable option is licensed under one of these licenses and then you have to look very carefully and probably involve legal support, but for all the other cases life gets far easier if you just don't use such dependencies and take something with a less restrictive license.
7 comments

You always pay for somebody else's code.

Sometimes you pay them with dollars. Sometimes you pay them by open-sourcing your own code. Sometimes you pay them by acknowledging their contributions. And sometimes you pay them by fixing the bugs.

Not knowing how you are going to pay for someone else's code before you use it is ridiculous, and refusing to pay for it in the manner that they have indicated is acceptable is reprehensible.

The only companies that can follow a policy of license purity and waste money rewriting code is those companies that live in markets with very little competition. The more harsh the competition is the more agile the company need to be in reducing cost and using any free code that help create the product while keeping to your core business model.

For example, game developers will use any code that don't conflict with the model of selling copies under exclusive rights. Blizzard Entertainment which is currently one of the largest game developer studio in the world has used everything from LGPLv3 to custom permission granted by free software developers. Having a lawyer read a standard license and evaluate if it can be used is much cheaper than pushing the release date on a game a few months further, not counting the additional cost of having to write your own XML parser, html, javascript, fonts, or what have you. It also the reason why game studio are willing to pay a lot of money for third-party libraries with extensively custom written restrictive licenses. So long it fit the business model, and it save money and time, then using it is a competitive advantage in a industry that is heavily over saturated.

The right thing to do is to just make the source available when the license requires you to do so. It's not that hard. If in doubt, just make it available.
It's hard if you licensed some of the code elsewhere and boundaries are unclear (and then ignore all the fallout from publishing - others can't use it and will call support, security researchers might find bugs, ...)

If more code would be shared it would be a better world, but the way s not simple. Respecting licenses of ocurse is a requirement.

    anything with *GPL as its license
AGPL is obviously even stricter than the GPL, but I don't see the problem with LGPL in libraries? Worst case you end up making some improvements to the library that are applicable outside your application and have to publish the source for your changes to the library, but that seems only fair. In the vast majority of cases you don't modify library code, leaving you with no obligation.

You might run the risk of somebody copy-pasting code from a LGPL library into your production system, but I don't think that risk is greater than the risk of them copy-pasting from the first google result without checking the license.

If you're not writing code that you yourself intend to make open, then this is actually what the GPL "wants" you to do.
"The right thing to do" from a programmers perspective"

Is to follow the license for whatever you're using. Full stop.

Its the right thing to do if you are interested in people using your code, making money off of it, and not contributing anything back.

Lots of people are not interested in this.

You seem to talk about what license to chose for your own libraries as a library developer. I didn't comment on that.
"libraries"