Is there a tool similar to jupyter-notebook, but not dependent on python?

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.

1 Like

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

1 Like

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.

3 Likes

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.

1 Like

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

2 Likes

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.