Pluto.jl is close, but it is not feature comparable to jupyter-notebook.
Jupyter-notebook saves results (text outputs and figures) in the notebook, but it requires a python environment.
Have a look at Neptune.jl.
Neptune originated as a fork of the Notebook platform Pluto, for those (like Data Scientists) who have requirements which conflict with the āreactiveā aspect of Pluto (where all cells re-evaluate every time a single cell is evaluated or re-evaluated). It may turn out to be that Neptune is only an interim solution, and that the capabilities it enables will eventually exist within the Pluto, but that it is not certain. Users with projects or applications which are not logically sequential or linear in execution/design, or which do not load external scripts, should first try Pluto.
Simply it is Pluto.jl without reactive feature.
Keep in mind, Neptune.jl is unmaintained since 2 years and never really took of, afaik itās a prototype at best. I wouldnāt invest in a workflow based on it.
The export to html feature of Pluto gives you an html file with all the outputs saved that can be seen in any browser.
You clearly lose the Julia interactivity (not the javascript ones like zooming on plotly plots), but the original notebook file is embedded in the html so you can also download it and open it again in Pluto on another pc of you want to modify the notebook again
It turns out that it doesnāt! VS code with the Julia extension letās you edit, run and view Jupyter notebooks without python. Has a few quirks, but works well.
Thanks. I hope thereās a solution like Pluto.jl, it is based on Julia without installing other āexternalā tools, such as python or vs-code. Of course, we need a browser:)
One advantage of jupyter-notebook is that when you view a previous notebook, all the diagrams and figures already exist, you donāt have to rerun cells.
just for viewing (i.e. without running any code) the HTML or PDF export do the same, that you can view the Pluto notebooks code and output.
But if you want to mix that ā look at yesterdays output and then start modifying ā yes then Pluto has to rerun all cells when you open the notebook today, thatās right.
yes, if rerunning cells takes dozens of minutes, itās a headache. Pluto.jl seems more inclined to education and demonstration purposes.
Iām using it as my default environment for the scientific work.
The cell deactivation feature is nice but Iām. Missing a feature to run a single cell on request (Shift+Enter).
That would allow me to disable expensive cell and rerun them on deman with a shortcut.
At the moment you have to activate and deactivate the cell with the mouse to mimic that feature.
If you wrap your expression/cells inside a @eval
macro they lose the reactivity so they are only ran when you manually execute them (though if you also want to avoid the first execution upon notebook load it is a bit more tricky).
Unfortunately it is also a bit tricky to use this if you are doing assignments within a block in your cell.
In that case, the assignment has to appear outside of the eval, something like a = @eval expensive_function(vars...)
, rather than @eval a = expensive_function(vars...)
or you get errors upon re-execution of the latter approach.
But if your expensive computation is mostly about processing some data and outputting some result then itās quite easy to stop the reactivity of specific cells
Edit: I donāt think it would be too difficult to create a separate macro that does the dirty job of moving the assignments outside of eval
for you so that you can do:
@nonreactive begin
a = ...
b = ...
end
inside a cell and the macro wrap everything in eval
and puts the assignments at top level outside, Iāll try making such macro
No, it requires a Jupyter front end. You can, for example, use JupyterLab desktop (which internally has a self-contained Python environment, but as far as the user is concerned it is a single app), or Nteract, or vsCode, orā¦
Thereās also Cantor which is a jupyter-like environment running computation cells but is entirely independent from the Jupyter project. It can actually load and save jupyter notebooks without depending on jupyter using a re-implementation of the .ipynb
format from what I understand. I think but am not sure this is also the case for nteract and the vs-code implementation.
Wow this is actually super sleek. Unfortunately it canāt find my Julia or R paths, but I hope this project does well.
Per the Cantor FAQ (I havenāt actually tried using it myself):
I have installed Sage/Maxima or other supported CAS, but the appropriate backend does not appear.
One possible explanation is that Cantor did not correctly detect the location. Go to the Settings ā Configure Cantorā¦ dialog and change the Path to the appropriate application on the backendās page.
That doesāt pop up. I might try and build it from source later rather than the Ubuntu Snap.