robert-dodier / maxima-jupyter

A Maxima kernel for Jupyter, based on CL-Jupyter (Common Lisp kernel)
Other
189 stars 31 forks source link

Need help understanding whether to target JupyterLab or notebook #103

Closed robert-dodier closed 3 years ago

robert-dodier commented 3 years ago

I gather that JupyterLab is a more recent evolution of Jupyter, and subsumes a notebook interface in a larger set of doodads that make it more like an IDE experience for the user. From what I understand, JupyterLab is a separate code base apart from the notebook, which continues to be supported, but with limited resources.

Is there any reason for maxima-jupyter to choose to target one or the other? Is everything going to work the same for maxima-jupyter in either environment?

@yitzchak if you have any comment on this, I would be glad to hear it.

yitzchak commented 3 years ago

As far as the kernel is concerned there isn't any difference between the two user interfaces in theory. The kernel can't really interrogate the front end for operational details. There are only a few signals that get sent from the kernel to the front end like input_request that result in user response from the front end interface.

Unfortunately there are bugs and quirks in Jupyter Notebook that are probably not going to being fixed since Lab is the actively developed interface. Because of this I am no longer testing common-lisp-jupyter on Notebook because there are bugs that I can't fix in Notebook without breaking Lab.

Aside from UI differences llke tabbed notebooks Jupyter Lab is more extensible. In addition to the widgets supported by Notebook (which we don't have access to in Maxima-Jupyter yet) Lab supports extensions that can add features or modify the UI. I am using this in jupyterlab-debugger-restarts to add a panel to the debugger to list the current restarts when entering the debugger.

In the end Jupyter Lab just has a lot more features and is being actively developed, whereas Notebook seems to be entering maintenance.

robert-dodier commented 3 years ago

Thanks, Tarn, that's all very helpful. I'll assume that JupyterLab is the target.