Authors: Marco Bertini, Mathias Lux;
Affiliation: University of Florence, University of Klagenfurt;
Editors: Mathias Lux and Marco Bertini
Writing source code for programs with lightweight text editors or fully featured integrated development environments is considered the main method of programming. Notebooks, however, are an extremely practical tool. In contrast to IDEs, projects are set up more easily and they allow for running programs in a read-eval-print loop (REPL) environment. The Jupyter Notebooks Quick Start Guide  describes notebook documents as “… both human-readable documents containing the analysis description and the results (figures, tables, etc..) as well as executable documents which can be run to perform data analysis.” Basically, markdown text can be mixed with program source code in a sequence of sections, each dedicated to either programming or description and documentation. Source code sections can be executed and the output is appended to the section, even formatted in the form of graphs, diagrams, or tables.
REPL and notebook based environments have proven to be useful in many scenarios including when exploring new libraries and frameworks, to prototype code, or as an educational tool to create interactive lecture material. A prominent example is Jupyter, which is the highly successful project behind Jupyter Notebooks and the recent JupyterLab, i.e. web-based systems to run and share notebooks that contain code, equations, data visualizations, and data exploration and narrative text.
nteract and Companion Products
nteract is a desktop-based application for Jupyter notebooks that simplifies some aspects of Jupyter, like installation and opening notebooks with just a click. It has also other benefits like a simple export to PDF and the possibility to publish notebooks as gists directly to Github.
Other benefits are a clean and minimalistic interface that looks like a native GUI and native support for several visualization tools and data formats like GeoJSON and Plotly ; of course, Matplotlib/Seaborn are supported. The nteract Data Explorer is a built-in tool for visualizing Pandas DataFrames within a notebook.
The usage paradigm is that of Jupyter notebooks, and the file format used to store them is indeed the usual IPYNB format based on JSON. nteract can even be installed as an extension of Jupyter and JupyterLab server so that nteract is simply an additional UI to it.
Finally, it must be noted that the nteract desktop application is a part of a broader environment, that provides several other tools that complement its features. Particularly interesting, for those that appreciate the sharing capabilities of Jupyter servers are Commuter and nteract Play applications. The first simplifies sharing notebooks with other people through the web, sharing notebooks stored on a workstation, or on a cloud provider like S3 or Google Cloud; the latter allows executing notebooks on Binder  instances, to share more easily notebooks with their code and all the required dependencies. Another interesting extension is Papermill  which allows to create workflows of Notebooks and parameterize them, basically creating scripts from notebooks. Combining these additional tools it is possible to create a workflow that is suitable even for large and well-structured organizations, like Netflix .
The latest versions of nteract support also ipywidgets, so it is possible to add form widgets like sliders or text fields.
If Python and ipykernel are already installed, you are also able to use Python immediately. Otherwise, two simple commands install the Python kernel:
python -m pip install ipykernel # install the python kernel (ipykernel) globally python -m ipykernel install # install python kernel into nteract's available kernel list
While these commands install the Python kernel globally with pip, other approaches, i.e. using conda and installing it in a virtual environment, are covered in .
Anyway, people used to Jupyter should have no problem with using nteract. The GUI let us create code or text cells:
and cells can be converted from code to text back and forth:
Text cells are formatted using Markdown and LaTeX:
Cells can be moved with drag&drop:
and when deleted there’s a handy undo button:
To use auto-completion simply press Ctrl+space, it works on classes, methods, and variables, across cells.
nteract is nice and easy to use UI for notebooks. It’s actively developed with frequent releases, although users should not worry about keeping it up-to-date thanks to the automatic updater. Opening a notebook with a double click and having the kernel started automatically is very handy, and the overall user experience is very pleasant.
 https://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/what_is_jupyter.html, accessed 2020-07-03
 https://github.com/plotly/plotly.py, accessed 2020-07-03
 https://mybinder.org, accessed 2020-07-03
 https://github.com/nteract/papermill, accessed 2020-07-03
 https://netflixtechblog.com/notebook-innovation-591ee3221233, accessed 2020-07-03
 https://nteract.io/kernels, accessed 2020-07-03