Authoring pitfalls

From wiki

Listing files[edit]

A filesystem `list` capability can lead to computational irreproducibility if the order of entries returned differs between invocations and implementations. It is better to sort the entries using a deterministic sort.

Host objects[edit]

It may be tempting to try to author a "drop-in" replacement for some interface available in one host environment, but not available in the other. This is probably a bad idea. For example, if you really want to use a utility class `TextEncoder` which exists in some runtimes but not others, then avoid simply re-implementing `TextEncoder` and writing a multiplexed conditional to select whether to use the native implementation or the "softcoded" one. If you've already done the work to do the re-implementation and are paying the cost of carrying it around, and it truly is an acceptable implementation for use on platforms where it does not exist, then you should probably route execution through your softcoded implementation under all circumstances. Subtle, unintentional differences between implementations (or performance characteristics) can lead to irreproducibility.

See also[edit]

"Computational reproducibility" in Science in the digital era

Cookies help us deliver our services. By using our services, you agree to our use of cookies.