Sometimes I wonder if PLs would be as concerned with side effects of IO if the virtual world outside the program wasn't immediate, shared, global state. I mean, instead of read() and write() to global files or the bajillion other ways to read and affect system state,
-
Show this thread
-
what if the only thing the OS provided was read/write cells that were transactional, versioned by the system. So all effects external to the program could be isolated for any invocation. Ensembles of programs could be composed by binding cells between them.
1 reply 1 retweet 3 likesShow this thread -
These ensembles would themselves have inner-hidden cells and external cells. You could detach a program from its cells and attach it to sandbox cells to see how it behaves. You could rollback whole or parts of the system state. Deterministic programs would even replay well.
1 reply 1 retweet 0 likesShow this thread -
Of course real IO (to the external world) is something you can't rollback. This could be represented as cells as well, but you could excise/isolate programs from these. Is the problem of IO a folly of our own making? Why emulate the poor temporal properties of the real world?
2 replies 1 retweet 2 likesShow this thread
You might be interested in my blog https://ngnghm.github.io and in my thesis for the reflective architecture to control your cells… https://j.mp/FarePhD
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.
Read my blog!