6 ms·
I think that NR exemplifies how scientific software should _not_ be. Despite the availability of the source code, already the usage of NR programs itself is se
by fmnt 10y ago
I think that NR exemplifies how scientific software should _not_ be.
Despite the availability of the source code, already the usage of NR programs itself is seriously restricted, even after license purchasing. Distribution of the software is not allowed (neither in the original of modified versions), which prevents proper verification and advance of computations. Adaptations or copies of the source code (extracted from the software or from the book) constitute a copyright infringement. Academic citations alone do not avoid such infringement. Rather, specific exceptions should be asked (and may not be granted).
Scientific codes widely used in physics often have comments such as 'this is taken from NR' (clearly violating the license/copyright). It shows that what most of the scientific community expects is everyone to be allowed to use/modify/distribute scientific codes, given proprer attribution. In the same way as everyone would feel free to write down and modify the standard model Lagrangian in their papers by citing appropriate references, and to publish their results without any of the above restrictions.
- posterboy 10y agoexactly, the cognitive dissonance between code and other research results is striking, sometimes. Then again, this just mirrors the expectations in the scientific community and the capitalist industry.
- tomjakubowski 10y agoCould you elaborate? Are you suggesting that something about capitalism prevents industry from taking advantage of research?
- deleted 10y ago[deleted]
- posterboy 10y agoit's competitive instead of cooperative
- scottfr 10y agoAgreed, I naively bought this book. Then I found out you were not allowed to use the source code in the book for commercial purposes without purchasing a separate very expensive license. Definitely, recommend you stay as far as way from this as you can. It's my own 1-star review on Amazon.
- martincmartin 10y agoThey don't own the algorithms. If you read their descriptions and turn them into code yourself, you're good. So "this is taken from NR" could actually be perfectly valid. And they're code doesn't exactly conform to best practices anyway, so if it's small (e.g. a random number generator), then implementing it yourself is a good idea. And if it's big (e.g. nonlinear optimization), you should use some other off-the-shelf implementation anyway, and just use NR to understand the theory behind it, strengths/weaknesses, etc. From the book: Copyright does not protect ideas, but only the expression of those ideas in a particular form. In the case of a computer program, the ideas consist of the program’s methodology and algorithm, including the necessary sequence of steps adopted by the programmer. The expression of those ideas is the program source code (particularly any arbitrary or stylistic choices embodied in it), its derived object code, and any other derivative works. If you analyze the ideas contained in a program, and then express those ideas in your own completely different implementation, then that new program implementation belongs to you.
- beevai142 10y agoThe code is next to the explanations in the books. Who decides whether your implementation is "completely different", especially if you admit that yours is not a clean-room implementation, since you read the book? Do you want to expose yourself to a legal risk? Or hire a lawyer to determine what the legal risk is? It is also not that clear all of the algorithms are fully original clean-room implementations written by the authors --- the techniques in the book are well-known and previous implementations do exist, written by other academics. As such, claiming copyright on some the codes is not morally defensible, even if legal. It's just better to not read the book at all. Since you cannot use the codes as is, if you want to learn about the theory behind it, it's better to pick a different book.
- sampo 10y ago> it's better to pick a different book In my experience and opinion, Numerical Recipes hits a pretty unique spot by explaining enough about the ideas behind and how the algorithms work, that one can start implementing them (with or without reading the code) but not getting theory-heavy and full of equations and proofs, like a real numerical analysis textbook. Kahaner, Moler, Nash: Numerical Methods and Software is a similar book, maybe even better, but it's from 1988 and never updated, and it's not nearly as widely known. Also it covers a smaller range of topics.