The reality is — notebooks are and need to be developed as an app platform ...
In order to do notebooks properly — you need:
1. discovery (Ideally static discovery) of all the state the notebook needs, and the bulk of state the notebook will/could manipulate during its execution. Your container needs to intercept the filesystem and the networking apis that will be invoked so that a determination of the state that results from these operations can be observed by the runtime and shimmed appropriately for reproducibility and for performance optimization
2. The notebook (and the runtime inferred model of all the required inputs) needs to be repo stable — I Should be able to write a notebook app that reads from the file system on my development host, deploy it somewhere, and the runtime should take care that wherever that however that post deployment file system read is implemented matches my local development semantics
3. Pplatform level dependency graph needs to exist to model re-execution requirements automatically — incorporating code changes and external state
Apple could build this And “notebook-os” would be the correct conceptual framework for it ... anything less is always going to leave us severely wanting