Current essay only briefly alludes to the major problems. These need more discussion:
-
Performance. For long chains of actions, both editor(!) must scale to long texts (I think CodeMirror is pretty good with B-tree), AND computation should be incremental.
-
Security.
-
Similar issues to Smalltalk's combined code+data "image".
Notably, if I give you a copy of my program, then modify it, how can you "upgrade" to new code with your data??
I complain about user's work being "2nd class" but that's largely a concession to the upgrade problem!
-
Usual issues with deterministic replay – how to represent network inputs / randomness.
-
Is it practical for real-time processes / games?
-
API coupling to single IDE. (LSP is promising solution?)
Current essay only briefly alludes to the major problems. These need more discussion:
Performance. For long chains of actions, both editor(!) must scale to long texts (I think CodeMirror is pretty good with B-tree), AND computation should be incremental.
Security.
WRITE`func({arg})`to reduce trivial injection risks. (Or homoiconic languages / AST-level structural editing.)Similar issues to Smalltalk's combined code+data "image".
Notably, if I give you a copy of my program, then modify it, how can you "upgrade" to new code with your data??
I complain about user's work being "2nd class" but that's largely a concession to the upgrade problem!
Usual issues with deterministic replay – how to represent network inputs / randomness.
Is it practical for real-time processes / games?
API coupling to single IDE. (LSP is promising solution?)