3 ms·
The argument wasn't "avoid randomized algorithms", the argument was "be forthcoming about the tradeoffs so your reader can understand the world and make an info
by dataflow 2y ago
The argument wasn't "avoid randomized algorithms", the argument was "be forthcoming about the tradeoffs so your reader can understand the world and make an informed decision".
Note that determinism isn't necessarily about avoiding "bad probabilities". It's about the same programing producing the same output for the same inputs. The moment you start introducing nondeterminism (whether random or not), you start having that much of a harder time debugging what the hell went wrong in your program. And you start to undermine the whole reproducibility effort that's been going on the past decade.
Which... may be fine, for your use case. But the point is there's a very real trade-off and it's not just theoretical. You need to actually think about it and make sure your audience knows the trade-off, instead of brushing it under the rug. If you want to lose the guarantee, that's fine -- but it needs to be a conscious decision, not done out of ignorance (And the comparison to "absolutists" or "authoritarians" is incredibly unwarranted and unconstructive here.)
- mritun 2y agoNon-determinism doesn’t mean chaos. Record the seed for all RNGs used (if you’re using more than one for your SkipList implementation) and then your Skip lists are no more harder to debug than a linked-list.
- dataflow 2y agoThat mitigation is neither sufficient for every situation, nor was it mentioned in the article even for the cases where it is adequate. Again: the point of the comment wasn't "tell people not to do this", it was "give people enough information to make an informed decision".