Interactive code interpreters for Jupyter notebooks. Thanks to this modular system, Jupyter supports any language.
Managing Jupyter with Nix
Data science should be reproducible. Nix is pretty good at reproducibility. How do we combine the two? jupyterWith is a convenient Nix library for this purpose. It can create Jupyter Lab environments and declaratively configure Jupyter kernels, including all the language libraries used.
Is a Literate Programming tool, mostly for Python but theoretically supports any language. Execution of code is implemented via Jupyter kernels. Code, comments and code section outputs are stored in so-called notebooks.