6

Recently I submitted a manuscript on a new R-package I have developed. The journal's decision was "Revise and Resubmit".

The editor and 2 reviewers all had very helpful comments. However, I'm not sure exactly how to interpret a comment that all 3 of them had. My package uses the open source C++ Eigen library for matrix manipulations, for which I mention in both the package and the manuscript. They asked justification for why I used the Eigen library, and whether it was completely necessary.

The answer is that it is not; R comes with matrix tools. However, using these tools for my project at the C++ level is not immediately straightforward; there are ways it can be done but given the work I have done so far, it would be a lot of work for me to do this.

For the record, the Eigen library uses the MPL2 license.

So my question is: are there are major ramifications for including the Eigen library in my open source code? If the reviewers are asking why I used Eigen because there are huge consequences for doing so, then I could rewrite my work without it, although I really don't want to. On the other hand, if they are merely asking because why I did because it's not clear, the answer is simple: because it was easier for me to do so.

I have declared the license on my work as MPL2 as well.

  • What kind of ramifications are you asking about?? – curiousdannii Jan 1 '16 at 1:49
  • @curiousdannii: the reviewers made the comment that I should consider if I really needed the Eigen library. If there were no downsides to using Eigen, l don't think the (consistently asked) question would be worth asking. I think Philipp's answer really gets at their reasoning. – Cliff AB Jan 1 '16 at 2:11
  • Asking about the "ramifications" seems like a strange way of asking about what they meant then... If you want to know what the reviewers meant, then ask the editor for clarification. – curiousdannii Jan 1 '16 at 2:45
  • @curiousdannii: I'm not just curious what the editors themselves meant. I'm curious as to what the potential cons are to including other's open source code when creating my own in future projects. The pros seem pretty obvious to me. – Cliff AB Jan 1 '16 at 3:12
  • Its quite possible this is entirely unrelated to Open Source, you could substitute it with Large 3rd Party Dependency (eg: Intel's Math Kernel Library) and the reviewer may have had the same response. – ideasman42 Jan 2 '16 at 15:03
6

When you use a 3rd party library even though the standard library provides the same functionality, you are adding an unnecessary dependency to your package. Any additional dependencies are problematic because they create maintenance overhead.

You will either need to include the library as static files in your package, which means that future updates to the dependency must be applied manually. Or you will have to link it dynamically, which means that anyone building your package must also acquire the dependencies on their own.

By keeping 3rd party dependencies to a minimum and only depending on the standard library you keep your package self-contained and easier to use and maintain.

  • 1
    Yes, the more I dwelled on the topic, the more I think this is what they were getting at (and is well worth considering when using other's open source code). I included the library as static files, which has its own set of implications. – Cliff AB Dec 31 '15 at 15:12
4

I doubt the reviewers are at all concerned about the (eventual, if it ever gets shared) license of your code. They might be asking (as you somehow answer) why you use a C++ matrix library as part of an R package, given that R has matrix manipulation built-in. Answer that question, which I understand is what they are asking. Don't try to second-guess them. If in any doubt, answer the question as given; and append a note asking for clarification, in case you believe there is something you might have misunderstood.

  • Thank you for the answer, but it doesn't quite answer my question: are there penalties to using other's open source when I want to make my own open source code? Of course I need to be mindful of licenses and citations, but if it saves me some amount of work, are there any other reasons why I shouldn't include others' work? – Cliff AB Dec 31 '15 at 1:10
  • 1
    @CliffAB One of the biggest goals of Open Source is to share work: otherwise, there would be no such thing as a licence to help facilitate that. Which seems somewhat ironic in your situation... – Zizouz212 Dec 31 '15 at 1:36
  • 1
    @CliffAB what I'm trying to say is that they probably just don't care about the sharing of the code. Their comment is on something else entirely. – vonbrand Dec 31 '15 at 9:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.