If you are a data scientist the probability that you work in notebooks is high. The default choice has been Jupyter notebooks for many. Netflix has recently released their notebook that was developed internally, Polynote. Here are some of the unique features you should know about this new tool.
One major difference between Jupyter and Polynote is that the cells in a Polynote notebook are immutable. In Jupyter you can run cells in any order you choose. While adding flexibility, it can also lead to complicated notebooks when trying to share with others. Polynote constructs the input state for a given cell based on the cells that have run above it. Making the position of a cell important in its execution semantics enforces the principal of least surprise, allowing users to read the notebook from top to bottom. No confusion on what order to run your cells if you’re sharing with the team.
Billed as “The polyglot notebook,” an interesting feature of Polynote is that it supports multiple languages. I know what you’re about to say, “well so does Jupyter!”. The multi-language support in Jupyter is a per notebook choice. One notebook, one language. However, Polynote supports multiple languages within the same notebook. It achieves this by making the language selectable per cell. Variables are also shared between cells so different languages can work together under the same context. This application of multiple language support opens the possibilities of choosing the best language for whatever operation you need to do. Currently Polynote only supports Python (with or without Spark), Scala, SQL, and Vega.
Data Visualization and Text Editing
In Polynote, data visualization is built-in. It has a GUI interface that the developer can use without having to write any code to visualize their data. As for text editing, Polynote has a WYSIWYG editor for composing text cells, so you’ll know what the text will look like as you’re writing. TeX equations are also supported.
Polynote also features a side area that shows you what is going on during runtime. It shows you what the kernel is doing at any given time. There is a symbol table that shows you what variables and functions you’ve defined. Compile failures and runtime exceptions are also highlighted in the editor, so you can see exactly whats going wrong.
Built in Config and Dependency Management
You are able to specify what dependencies you need for your code to run and Polynote will set it up for you. Cleaner code for all!
Will this be a Jupyter killer? Only time will tell. Polynote shows potential and is definitely going in the right direction with making the notebook work more like an IDE and great QOL features. To check out Polynote for yourself visit here.