
Don Stewart wrote:
anton:
OTOH, the freedom to change things on the fly can be nice to have, and if used with "great responsibility" (mainly an understanding of what's safe to do and what isn't), the downside can be vanishingly small.
It can be small, unless you need to have any kind of static assurance (say for high assurance software, or for new kinds of optimisations, or if you want to reorder code in the compiler for parallelism).
Then the downside to arbitrary, untracked effects in the system is huge.
Oh dear - I'm going to have to rethink the paper I was working on, provisionally titled "In defense of arbitrary untracked effects in high assurance software." ;) But by "can be vanishingly small", I definitely meant something like "in cases where it's technically and economically appropriate". Anton