Skip to content

Commit d727e28

Browse files
committed
Update notebooks section
1 parent df22c5a commit d727e28

2 files changed

Lines changed: 119 additions & 4 deletions

File tree

docs/comparisons/utility/notebooks.md

Lines changed: 115 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,122 @@ title = "Notebooks"
33
+++
44

55
# Notebooks
6-
Notebooks are a type of [Integrated Development Environment (IDE)](https://en.wikipedia.org/wiki/Integrated_development_environment), and
7-
are particularly useful for sharing and showing computations.
6+
Notebooks are a type of [Integrated Development Environment (IDE)](https://en.wikipedia.org/wiki/Integrated_development_environment) accessed through the web-browser, where code at text are interleaved.
7+
They are particularly useful for sharing and showing computations.
88

9-
Relevant packages: [Pluto.jl](https://github.com/fonsp/Pluto.jl), [IJulia.jl](https://github.com/JuliaLang/IJulia.jl), [Neptune.jl](https://github.com/compleathorseplayer/Neptune.jl)
9+
## Star History
10+
{{star_history IJulia Pluto Neptune BonitoBook}}
11+
12+
13+
## Jupyter (IJulia)
14+
{{badge IJulia}}
15+
16+
> Julia kernel for Jupyter
17+
18+
[Jupyter](https://github.com/jupyter/) is the original notebook. The name is a reference to the three core programming languages supported by Jupyter: Julia, Python and R[^1]. It
19+
This is very mature, and used by a large community. This should probably be the first one you try.
20+
A jupyter notebook is organized in "cells".
21+
Cells can contain either text (in [markdown](https://en.wikipedia.org/wiki/Markdown) format) or code.
22+
The code is evaluated in the kernel as if you were entering the same code into a Julia session.
23+
24+
The [Colab](https://colab.google/) service makes it easy to test Jupyter without needing to install anything locally.
25+
It also includes a Julia kernel.[^2]
26+
27+
The main kernels are :
28+
* Python: [IPython](https://github.com/ipython/ipython) (the default kernel shipped with Jupyter)
29+
* Juila: [IJulia.jl](https://github.com/JuliaLang/IJulia.jl)
30+
* R: [IRkernel](https://github.com/IRkernel/IRkernel), [ark](https://github.com/posit-dev/ark) (a new kernel developed by [Posit](https://posit.co/) (previously RStudio) for the [Positron](https://github.com/posit-dev/positron) IDE)
31+
32+
## Pluto
33+
{{badge Pluto}}
34+
> 🎈 Simple reactive notebooks for Julia
35+
36+
Where Jupyter is multi language (and mainly python), [Pluto.jl](https://github.com/fonsp/Pluto.jl) is a Julia project and mainly (only?) supports Julia.
37+
It also differs from Jupyter in the execution model.
38+
39+
Where the state of the jupyter kernel depends on the order in which cellse were run, Pluto maintains a consistent state, where all cells are updated in a [reactive](https://en.wikipedia.org/wiki/Reactive_programming) manner.
40+
41+
An other difference is that cells in Pluto only contain a single line of code.
42+
43+
Many people are very happy with the Pluto model, where the state is always consistent (as in a spreadsheet), where others prefer the linar execution model of Jupyter notebooks where you often need to restart the kernel and run from the top to make sure all is consistent.
1044

1145
The author of Pluto.jl gave a talk ([YouTube link](https://youtu.be/Rg3r3gG4nQo?feature=shared)) at JupyterCon 2023, which is a good demonstration of how to use Pluto.jl.
1246

13-
This section is not yet properly written. If you have used or developed Julia packages in this domain, we would love your help! Please visit the ["Contributing" section](https://github.com/JuliaPackageComparisons/JuliaPackageComparisons.github.io#contributing) of the [repository that hosts this website](https://github.com/JuliaPackageComparisons/JuliaPackageComparisons.github.io) for information on contributions.
47+
48+
## Neptune
49+
{{badge Neptune}}
50+
> Simple (Pluto-based) non-reactive notebooks for Julia
51+
52+
From the README:
53+
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.
54+
55+
See also [announcement](https://discourse.julialang.org/t/announcing-neptune-jl-now-updated-to-multi-line-cells/54088)
56+
57+
## BonitoBook
58+
{{badge BonitoBook}}
59+
> BonitoBook excels in plotting, customizability, ai integration and language interoperability, making it perfect for exploring data, building dashboards and any other interactive application.
60+
61+
[BonitoBook](https://github.com/SimonDanisch/BonitoBook.jl) was [announced](https://discourse.julialang.org/t/ann-bonitobook-jl/131442) in 2025 by [Simon Danisch](https://github.com/SimonDanisch) who is also the main author of [Bonito](https://github.com/simondanisch/Bonito.jl) and [Makie](https://github.com/MakieOrg/Makie.jl).
62+
63+
BonitoBook uses the linar execution model as Jupyter.
64+
65+
From the [website](https://bonitobook.org/website/):
66+
67+
BonitoBook is a Julia-native interactive notebook system built on [Bonito.jl](https://github.com/simondanisch/Bonito.jl) that seamlessly combines multi-language execution, AI integration, and modern web-based editing in one powerful platform.
68+
69+
### License
70+
Note that BonitoBook is not under a free license, but the [PolyForm Noncommercial License](https://github.com/SimonDanisch/BonitoBook.jl/blob/main/LICENSE).
71+
72+
Relevant packages: [Pluto.jl](https://github.com/fonsp/Pluto.jl), [IJulia.jl](https://github.com/JuliaLang/IJulia.jl), [Neptune.jl](https://github.com/compleathorseplayer/Neptune.jl)
73+
74+
## Quarto
75+
> Open-source scientific and technical publishing system built on Pandoc.
76+
77+
[Quarto](https://github.com/quarto-dev/quarto-cli) developed by [Posit PBC](https://posit.co) (formerly [RStudio](https://en.wikipedia.org/wiki/Posit_PBC)).
78+
79+
As Jupyter, Quarto is not a Julia project, but supports a Julia kernel as well as Python and R.
80+
81+
A quarto document is written in [Markdown](https://en.wikipedia.org/wiki/Markdown) with metadata in [YAML](https://en.wikipedia.org/wiki/YAML) code in codeblocks.
82+
83+
From the README:
84+
Quarto is an open-source scientific and technical publishing system built on [Pandoc](https://pandoc.org). Quarto documents are authored using [Markdown](https://en.wikipedia.org/wiki/Markdown), an easy to write plain text format.
85+
86+
In addition to the core capabilities of Pandoc, Quarto includes:
87+
88+
1. Embedding code and output from Python, R, Julia, and JavaScript via integration with [Jupyter](https://jupyter.org/), [Knitr](https://yihui.org/knitr/), and [Observable](https://github.com/observablehq/).
89+
90+
2. A variety of extensions to Pandoc Markdown useful for technical writing including cross-references, sub-figures, layout panels, hoverable citations and footnotes, callouts, and more.
91+
92+
3. A project system for rendering groups of documents at once, sharing options across documents, and producing aggregate output like [websites](https://quarto.org/docs/websites/) and [books](https://quarto.org/docs/books/).
93+
94+
4. Authoring using a wide variety of editors and notebooks including [JupyterLab](https://quarto.org/docs/tools/jupyter-lab.html), [RStudio](https://quarto.org/docs/tools/rstudio.html), and [VS Code](https://quarto.org/docs/tools/vscode.html).
95+
96+
5. A [visual Markdown editor](https://quarto.org/docs/visual-editor/) that provides a productive writing interface for composing long-form documents.
97+
98+
Learn more about Quarto at <https://quarto.org>.
99+
100+
## Visual Studio Code (vscode) extension: julia-vscode
101+
> Julia extension for Visual Studio Code
102+
103+
[vscode](https://github.com/microsoft/vscode) is the most popular editor for editing Julia code.
104+
Julias is well supported through the [julia-vscode](https://github.com/julia-vscode/julia-vscode) extension.
105+
106+
Vscode also has support for editing (an evaluating) Jupyter notebooks.
107+
108+
## Positron
109+
> Positron, a next-generation data science IDE
110+
111+
[Positron](https://github.com/posit-dev/positron) is a fork of [vscode](https://github.com/microsoft/vscode) optimized for data science.
112+
It supports Julia through the [IJulia.jl](https://github.com/JuliaLang/IJulia.jl) Jupyter kernel, but there is [room for improvement](https://github.com/posit-dev/positron/issues/3679).
113+
114+
From the README:
115+
116+
What is [Positron](https://positron.posit.co/)?
117+
118+
- A next-generation data science IDE built by [Posit PBC](https://posit.co/)
119+
- An extensible, polyglot tool for writing code and exploring data
120+
- A familiar environment for reproducible authoring and publishing
121+
122+
123+
[^1]: https://en.wikipedia.org/wiki/Project_Jupyter
124+
[^2]: [Julia in Colab](https://discourse.julialang.org/t/julia-in-colab/126600).

docs/utils.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,10 @@ const PKGINFOS = [
156156
PkgInfo(pkgname="IsotopeTable", username="Gregstrq", branch="main", docslink=nothing),
157157
PkgInfo(pkgname="BestieTemplate", username="JuliaBesties", branch="main"),
158158
PkgInfo(pkgname="PackageMaker", username="Eben60", branch="main", docslink="https://eben60.github.io/PackageMaker.jl"),
159+
PkgInfo(pkgname="IJulia", username="JuliaLang", branch="master"),
160+
PkgInfo(pkgname="Pluto", username="fonsp", branch="main", docslink="https://plutojl.org/"),
161+
PkgInfo(pkgname="Neptune", username="compleathorseplayer", branch="master", docslink=nothing),
162+
PkgInfo(pkgname="BonitoBook", username="SimonDanisch", branch="main", docslink="https://bonitobook.org/website/"),
159163
]
160164

161165
function get_pkginfo(pkgname)

0 commit comments

Comments
 (0)