Hacker News new | past | comments | ask | show | jobs | submit | fmnt's comments login

Agreed. Just started my second postdoc job in pyhsics and 30% of my time goes into paper work for registering in a new country and at the same time applying already for new positions. This is by far the major time waste I see.


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.


They 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.


The 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.


> 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.


The point stands, though - NR gives a nice introduction, and allows you to dabble with code and algorithm. But the NR code is didactic, it is not production quality (nor is it intended as such). Together with the restrictive license terms, that means:

For anything to be used in the real world, in production, you're better off taking code from somewhere else.

What alternative to use depends on the topic/algorithm in question. But NR should just be a starting point, not what you actually use.


Yeah, that's how I remember it too. NR was a great reference in the 80s, but then some time (after the 2nd edition '92) things started to change and now they've changed a lot.

First, I think the publishers started to see that there was money to be had as the copyright/left wars took off and the book left academia (where you weren't going to get any money suing them anyway).

Second, as the web grew (late 90s) "programmers" started just copy-pasting "code"/html from wherever they liked without understanding or attribution, and that is something that still exists today... although I hope that more people recognize it as a problem to be stamped out.

So now, NR is somewhat of a relic that oldsters remember as a useful tool, and a new generation see as another symbol of a problem they're trying to get rid of. It's really both.


Agreed, 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.


exactly, 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.


Could you elaborate? Are you suggesting that something about capitalism prevents industry from taking advantage of research?


it's competitive instead of cooperative


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: