Hacker News new | ask | show | jobs
by crosvenir 4186 days ago
I mostly agree, though if I had to choose between the model on which the code was based or the code itself, I'd prefer the model.

While it would be great and preferable to have both, isn't the code just a language/stack/programmer(s) specific interpretation of the underlying model?

2 comments

> isn't the code just a language/stack/programmer(s) specific interpretation of the underlying model?

There's the catch -- it should be, but there's no way to verify it's correct without comparing the source code against the model. (Well, I suppose if you had access to the raw data and the time to rewrite the software yourself from scratch, you could do that and see if you got the same results. But who has time for that?)

I don't know who has time for that, but it's far more reliable than auditing source code. Two people using two different languages are not likely to code up the same bug, but overlooking a bug in code someone else wrote is easy. Besides, coding things up yourself is not much slower than a full audit: understanding other people's code is hard. There's a reason that many developers have an urge to throw out "legacy" code and redo it from scratch.
Sure, that's true. But the purpose of asking for the code is because if the program works there is guaranteed to be enough information to reverse-engineer the corresponding model if necessary. With just a specification of a model there may be built-in assumptions involved which only become apparent in the implementation. Standard language and protocols are one way to avoid this problem, but these are usually not as exacting as a compiler.

I'd definitely prefer to have both a model and an implementation available, but if I had to pick just one it would be the code.