Hacker News new | past | comments | ask | show | jobs | submit login

  Without better software, science cannot progress.
Science can progress even without software - the only difference that software makes is rate of progress and its cost.

  But the culture and institutions of science have not yet adjusted to this reality.
Did you ask yourself why ? Maybe, because what's now, just works for them ? I didn't see any description of problems on this page, that this manifesto wants to solve.

  The code is the only definitive expression of the data-processing methods used: without the code, readers cannot fully consider, criticize, or improve upon the methods.
The code is not as important as descriptions of algorithms, and the ideas behind code - readers should not concentrate on the code, but on everything that's behind it, and if they want to verify results, they should write code themselves, in order to increase plausibility of the results by independent verification - including independence of code.

I'm not buying this.




> Science can progress even without software - the only difference that software makes is rate of progress and its cost.

Depends on the science. Facial recognition software? That requires software to make progress.

> Did you ask yourself why ? Maybe, because what's now, just works for them ? I didn't see any description of problems on this page, that this manifesto wants to solve.

It is usually to the benefit of the individual researcher to keep the code under wraps, but not to the benefit of the field of research. A researcher benefits from generating results. They do not benefit from other people being able to verify their results. In fact, they may even benefit from raising the barrier to entry, as it makes their own results more important in the field.

> The code is not as important as descriptions of algorithms, and the ideas behind code

In theory, this should be 100% true. In practice, results are determined as much by parameters, implementation choices, and flat-out bugs, as they are by the algorithms and the big ideas. I absolutely agree that people should re-implement the algorithms, rather than share the bugs (Dijkstra wrote against this). However, what happens when you find a discrepancy between your results and what a paper said? Without having access to the original source code, you can't figure out what caused the difference. Anecdotally, my girlfriend has been in this situation before--she couldn't replicate a (computer vision) result from someone else's paper. The original author was reticent to share their own code, so she didn't know whether the difference was a bug on her end, a bug on their end, or a platform difference. Open source code may have helped answer that question.


> Depends on the science. Facial recognition software? That requires software to make progress.

Like every computation - you can simulate it on paper :)

> It is usually to the benefit of the individual researcher to keep the code under wraps, but not to the benefit of the field of research. A researcher benefits from generating results. They do not benefit from other people being able to verify their results. In fact, they may even benefit from raising the barrier to entry, as it makes their own results more important in the field.

It's to the benefit not only of the individual researcher, but also of the institutions - because they don't need to upkeep code repositories - so publishing is not as costly as it could be, when releasing source code was mandatory. From field of research point of view - as I wrote earlier - - source code is not important. It may be useful in some situations but only for individual researcher (like your girlfriend).

> Without having access to the original source code, you can't figure out what caused the difference.

I think that's good reason to share the code or for discussion between researchers - but I don't think it's enough to make sharing code mandatory, because your girlfriend could for example write article pointing out differences between her result and previous result(s) and be done (assuming she was certain about her result), without ever looking at others source codes.


Science can progress even without software

Okay well, I don't know what field of science you work in, but where I am sitting, we can't make progress without fourier-transforming millions of samples for tens of thousands of detectors three times an hour. Try doing that without software.

Science rests on the ability of others to reproduce and finesse your work. Releasing your code makes this much easier, partly because a lot of code does "boring" stuff like deal with data formats and basic calibrations before it gets to the "interesting" stuff. So giving somebody the "boring" part helps them enormously.

The reason people don't do it: they don't get personal benefit for it, and the journals and funding agencies don't make them. The latter CAN change.

[Edit - also: the way of funding scientific computing is somewhat broken, but that's another story].


> Okay well, I don't know what field of science you work in, but where I am sitting, we can't make progress without fourier-transforming millions of samples for tens of thousands of detectors three times an hour. Try doing that without software.

It's possible - you can make hardware circuit that does exactly this :)

> Science rests on the ability of others to reproduce and finesse your work. Releasing your code makes this much easier, partly because a lot of code does "boring" stuff like deal with data formats and basic calibrations before it gets to the "interesting" stuff. So giving somebody the "boring" part helps them enormously.

What if this "boring" part in others code contains bug ? There's less chance to reproduce it, if you had to write it yourself :)




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: