WinVector / wrapr

Wrap R for Sweet R Code
https://winvector.github.io/wrapr/
Other
135 stars 11 forks source link

Licensing : possible to use LGPL instead? #10

Closed DavidPatShuiFong closed 5 years ago

DavidPatShuiFong commented 5 years ago

Sorry to be a nuisance, but is it possible for wrapr to be on a slightly more 'permissive' license, like LGPL or perhaps GPL with 'loading/importing/linking' exception? (the terminology for what happens when one R package 'imports' or 'loads' a function from another R package is so confusing....)

For what it is worth, magrittr has an MIT license ... but wrapr seems to have strong advantages.

JohnMount commented 5 years ago

We can talk licenses, but more importantly what specific issue are you trying to avoid? R itself is GPL2/3 (ref) so one needs to use a compatible license anyway. magrittr itself uses knitr, which is also GPL2/3.

DavidPatShuiFong commented 5 years ago

Thanks! magrittr does use knitr, but it is listed as a 'suggests' rather than Import/Depends, so I suppose that the authors thinks magrittr is not really dependent on knitr.

Long rant follows....

One difficult thing about not just restrictive, but very prescriptive licenses like GPL is for the person whose main job is not programming, whose second job is not programming, but whose hobby in support of a work sub-interest is programming. In my case, I am a medical doctor, whose interest is in data analysis, and who supports that interest with the easiest-to-use-tool available (which happens to be R).

In that case, it is hard for the part-time hobbyist to adjust by 're-write the library themselves' (well, I did adjust 'dtedit', and much as I enjoyed the result, I don't want to repeat it!) or change tack entirely (just learn Python! and how to do data science in Python! and learn object-oriented programming in Python! and write interfaces in Python!).

Though, to be fair, wrapr is just one alternative for piping in R, and the other two obvious options both claim MIT licenses.

As to why a part-time hobbyist programmer who writes a 'work-useful' tool would want to use a non-GPL compatible license. Well, in the ideal world, I would GPL the 'work-useful tool' too, and could even charge a subscription even though the user can easily bypass all licensing by having the source code available. Because I don't think most other healthcare providers will bother to 'hack' the source code anyway.

But in the real cruel world, and that is even admitted to in the various hints in the GPL about universities and employers 'stealing' work intended for GPL, power is quite assymetrical! I am having the experience where I submitted my code to the IT department for use at my workplace and then being told

  1. the work is evil and dangerous
  2. show us the source code of the work
  3. the code is doing some good and useful things
  4. but you still can't use your code at the workplace
  5. instead, we'll adopt your code into our project (using the proprietary Microsoft BI...)

Thankfully, in the somewhat more sane world of the my own departmental manager, they realize that something is 'not quite right' here, and that is partly related to respect of intellectual property. But that is easiest to understand in terms of ownership, rather than 'my code is liberated by GPL'! After all, after hours of reading GPL-related comments about R, there still seems to be a lot of grey areas which merge technical discussions between lawyers and more high-powered programmers than me. And to a normal person, 'copyleft' sounds somewhat insane. Even in a left-wing community health service completely dependent on government funding.

And the IT department understanding seems to be 'open-source is dangerous and cannot be used in the workplace, but at least we can copy your work indiscriminately'.

As to the base-libraries of R being in GPL2/3, I think that is a problem too. But in casual discussions between people who are not lawyers, and which has been made clear with GNU GCC, most people would think that using the base functions of an interpreter/compiler would not normally make the interpreted/compiled source code a 'derived work'. And since I (and the people I am negotiating with) are not, and will not, employ high-powered lawyers, superficial appearances are enough...

Anyway, thanks for your concern about the issue! I do understand that is the prerogative of the creator to define the future use of their code. Using wrapr was just a wish, not a demand, and whenever I get my current project in more-or-less GPL compatible state, I look forward to using wrapr with a more casual project!

JohnMount commented 5 years ago

Thank you for taking the time to answer my question.

I don't see a general issue that I can fix by a license change, so I am closing the issue. Thank you for writing, and sorry you did not get what you want.

To add some opinion of my own.

It sounds like some part of your concern isn't your own specific understanding of the GPL3, but opinion of others about GPL licenses in general. There isn't a lot I can do to control opinions of others, so I have to leave that alone. For any license, there is going to be a group who doesn't like that license. Though I admit: more people tend to have a strong opinion on GPL licenses than many others.

To use a medical analogy: avoiding the GPL3 based on non-expert opinions about the GPL3 would be similar to avoiding vaccinating due to non-expert opinions about vaccination. The fact that there are a near infinite number of hours of anti-vaccine videos and writings doesn't change the fact that a given vaccine is either safe or is not. There is a underlying truth (independent of us knowing it), and we should base our actions on our honest informed estimate of the underlying truth. We can't base our actions on being able to refute all writings for or against a topic (as there are too many). And yes there is an asymmetry, taking a arbitrary prescription medication based on non-expert opinion would be dangerous.

The correct interpretation of the GPL3 is a fairly technical legal point that also requires a disciplined reading of some of the history of technology to get context and precedent. But the GPL3 license can be understood. The GPL3 is not necessarily what a given supporter or detractor claims it may or may not be.

To conclude.

If you are willing to use GPL3 licensed software, please give wrapr a try. If you are not willing to use GPL3 licensed software, I would suggest avoiding wrapr.

A group willing to use GPL3 licensed software (and abide by the license terms) is welcome to use wrapr for free. For a group unwilling to use GPL3 licensed software, our company is willing to support dual-licensing of our packages under a paid support contract.

DavidPatShuiFong commented 5 years ago

Thanks John for your explanation and understanding. The possibility of dual-licensing might be handy, if I (or some-one else) ever write a project that goes commercial, so thanks!

JohnMount commented 5 years ago

I thought about it some more and re-license wrapr as GPL-2 | GPL-3. This is the same license as R itself ( https://www.r-project.org/Licenses/ ). So any project on R involves at least a GPL-2 | GPL-3 license.