I’m wondering what is the difference in practice between running: jupyter notebook and jupyter lab. I know I can access Lab and the classic UI regardless of which command I use to start the server, but --collaborative is only supported from jupyter lab but not jupyter notebook.
What should I look out for if I migrate a system to using jupyter lab to start the server from jupyter notebook?
The main, hopefully invisible, difference is in the server which will be used:
jupyter notebook will start the old notebook server
jupyter lab or jupyter nbclassic will start the new jupyter_server server (“this is the future”)
This means that when moving from jupyter notebook to jupyter nbclassic or jupyter lab (>3.0) you will need to adjust names of settings/arguments as described in Migrating from Notebook Server.
There are no more differences for jupyter notebook and jupyter nbclassic (if anything else differs, it should probably be fixed). If you use JupyterLab 3.x, when starting jupyter lab and switching to classic notebook interface you were already using nbclassic, probably without even noticing!
nbclassic and lab are both based on jupyter_server so both share all configuration options listed on jupyter_server full config list including those prefixed with JupyterApp, ServerApp and more. However, jupyter nbclassic vs jupyter lab will invoke different applications with extra classic notebook-specific, or lab-specific options available:
aliases and traits for LabApp in jupyterlab/labapp.py; this is where the --collaborative flag is defined.
I have written a more elaborate explanation of differences between notebook and jupyter_server on SO and tried to explain the rationale for this change. It’s not an official answe - but if people find it useful, we can make a pull request to include it in the documentation of jupyter_server, near the migration topic, where it would go though review of more knowledgeable folks first.
After reading this post, the migration guide and my SO answer you should be well prepared to migrate to jupyter_server. The only piece of advice: keep it up to date, as it gets continuously improved