Have you already switched to the new JupyterLab? If no, you should really give it a try because it is amazing!
But what makes it so great?
What I like (a lot)
A complete IDE experience
Like its older brother (the Jupyter Notebook App), it is a Web application that allows you to create, manage and run notebooks. Unlike its predecessor, JupyterLab offers almost a complete IDE experience, with a unique and integrated window: everything is at a glance. For example, by using the new file browser you have now access to all your files while you are working on your notebooks.
The work area can be organized the way you prefer: you can split it into panels, placing the notebooks (or other documents) you are working on side by side, one over the other and in many other different ways. Each panel can be further organized using tabs, giving you extreme flexibility.
If you want to focus on a single document, you can switch to the
single-document view, using the option available under the
The layout can be saved
JupyterLab is built around the concept of workspace. A workspace keeps track of the currently opened files, the layout of the work area, the tabs used and so on. The beautiful thing is that workspaces can be saved, giving them a custom URL. In that way you can access a specific workspace from everywhere in the world (provided you have access to the server serving the documents).
JupyterLab natively offers four different base elements:
- Notebooks: the Notebook docs you are used to
- Files: from text files, to media files
- Terminals: as the name said, these are shells you can start and place directly in your workspace
- Code console: enable you to run code directly in a kernel. For example, if you are using Python, this means having access to IPython using the virtual environment you chose. This is the new entry and it is fantastic for fast prototyping.
Writing papers and documents has never been so easy
JupyterLab supports lot of different media types. You can now open images, pdfs and text files directly in your work area: you can even interact with those files (for example zooming, rotating the images) and edit SVG files. However, it is on text document where JupyterLab really starts to shine. You can work on a markdown document and see the results of the edits you are making almost in realtime (and you can do almost the same thing with LateX using a plugin).
Built-in support for CSV and JSON files.
JupyterLab natively offers a CSV viewer, a CSV editor, a JSON viewer and a JSON editor.
Everything is nicely integrated and works smoothly: documents, kernels and code interact between each other allowing new way of working.
- You can execute a piece of code written in a text document using the chosen kernel. This is useful to check if the code you are writing in your document contains errors.
- You can copy a cell from one notebook to another simply by dragging it
- The same file can be opened multiple times: all these istance will be kept synchronized automagically
And a lot more!
There are many other interesting features I won’t discuss here (simply for the sake of simplicity). If you are interested, you can take a look at the original doc. For example, a fantastic feature is the new auto-complete, doesn’t it look amazing?
What I do not like
JupyterLab is fairly a new product and it is still under heavy development. So there is clearly room for improvement (and that’s the beauty of open source!)
As I said before, you can organize your work area in a very flexible way. You cannot, however, split your work area across multiple monitors, and this is something really frustrating. You are stucked on a single monitor because each workspace can be opened on a single tab/window at a time (yes you can set different names for the workspace but it something tedious). This is a severe limitation you do not have with the old Jupyter Notebook App.
I found the kernel interruption mechanism to be less effective than the one offered by the older Jupyter Notebook App: sometimes it hangs and you have to wait. It is not big deal but something annoying.
If you haven’t tried JupyterLab yet, you should really try it, because it offers many new and useful functionalities and a pragmatic, effective, integrate environment that boosts your productivity. Bye bye Jupyter Notebook App.