Jupyter, the interactive data notebook for visualization and analysis with languages like Python and R, is undergoing a quiet but major reworking into a new product, JupyterLab.
Jupyter’s popularity extends beyond scientific or technical applications. Developers routinely share code snippets, sample output, and discussions of that output via Jupyter notebooks exported to HTML.
But ongoing struggles with the underlying code and API set have pushed Jupyter’s developers to rework the project from the inside out and provide a new UI to match.
Last month, Jupyter’s developers took to their blog to discuss the details of the still-under-wraps JupyterLab. The code is in an alpha state — the latest release, as of last week, is version 0.2 — but the developers are confident even at this early stage that the project’s basic direction will be clear.
JupyterLab uses a web-based UI that’s akin to the tab-and-panel interface used in IDEs like Visual Studio or Eclipse. Notebooks, command-line consoles, code editors, language references, and many more items can be arranged in various combinations, powered by the PhosphorJS framework.
“The entire JupyterLab [project] is built as a collection of plugins that talk to kernels for code execution and that can communicate with one another,” the developers wrote. “We hope the community will develop many more plugins for new use cases that go far beyond the basic system.”
JupyterLab is built as a plugin-powered framework, following Jupyter’s pattern of being language-agnostic. Jupyter provides glue code and UI/UX components, while support for each language within Jupyter is provided by a third-party kernel.
The best parallel for JupyterLab’s UI might be projects like Visual Studio Code, which is also powered by a web-based interface. But JupyterLab doesn’t simply allow the UI to be provided anywhere a web browser runs, but empowers what it describes as “multiple workflow needs,” where a user can “move from a Notebook/narrative focus to a script/console one” as needed.
Aside from the Jupyter team, JupyterLab’s major partners include Tech at Bloomberg, which has previously supported both the Jupyter core project and contributed add-ons to it (such as the BQPlot interactive graphing/plotting library), and Continuum Analytics. The latter outfit is the creator of Anaconda, a popular Python distribution with enterprise support and cloud-hosting options.
Once JupyterLab hits a proper 1.0 release, it’ll likely start showing up in cloud environments as a front end for number-crunching platforms that have since become a big hit there.