Interactive notebooks ~ Pluto.jl | Fons van der Plas | JuliaCon 2020
The Julia Programming Language6 HN recommenders · recommended in 4 months, 2020–2021
talk · intro · evergreen · 2020–2021 on HN
Fons van der Plas introduces Pluto.jl, a reactive notebook for Julia that tracks references between cells and re-runs affected cells when code changes. The talk was given at JuliaCon 2020.
HN recommends it as an enthusiastic demo of spreadsheet-like reactive notebooks, which commenters think new notebook projects should copy.
Up next
4 mo on HNRSA ANIMATE: Language as a Window into Human Nature
Royal Society of Arts
2 HN recommender · 2011–2022
7 mo on HNWhy Are You So Angry? Part 1: A Short History of Anita Sarkeesian
Innuendo Studios
7 HN recommender · 2015–2022
6 mo on HNThe Marvel Symphonic Universe
Every Frame a Painting
6 HN recommender · 2017–2026
9 mo on HNConfessions of a Converted Lecturer: Eric Mazur
UMBCtube
9 HN recommender · 2009–2023
14 mo on HNA Better Default Colormap for Matplotlib | SciPy 2015 | Nathaniel Smith and Stéfan van der Walt
Enthought
15 HN recommender · 2015–2026
4 mo on HNGeoffrey West on COMPLEXITY
FQxI
3 HN recommender · 2014–2018
5 mo on HN4 2 1 Christopher Domas The future of RE Dynamic Binary Visualization
Adrian Crenshaw
7 HN recommender · 2013–2026
3 mo on HNStanford Seminar: Beyond Floating Point: Next Generation Computer Arithmetic
Stanford Online
5 HN recommender · 2017–2021
11 mo on HNDON'T PANIC — Hans Rosling showing the facts about population
Gapminder Foundation
8 HN recommender · 2017–2021
8 mo on HNIs Most Published Research Wrong?
Veritasium
8 HN recommender · 2017–2025
6 mo on HNHow not to be ignorant about the world | Hans and Ola Rosling
TED
5 HN recommender · 2015–2023
6 mo on HNI don't like notebooks.- Joel Grus (Allen Institute for Artificial Intelligence)
O'Reilly
6 HN recommender · 2018–2025
8 comments from Hacker News
I think notebooks are great for building a presentation / reports of a data exploration, but I agree that they shouldn't represent programs. Rstudio won't export an R-markdown notebook to PDF without rerunning all cells sequentially. It's great for keeping the code "in check", but for things that takes hours to run, it can be quite annoying. I do think most of the problems with notebooks go away if you somehow force sequential running before presenting it to other people. Another really cool take on notebooks are Julia's Pluto Notebooks. Like a spreadsheet, there is no sequence that cells are run in. Everything is updated simultaneously. It's kinda hard to explain, but the JuliacCn presentation on these is absolutely wonderful: ▶ this video
I think every new notebook project should take ideas from Julia's Pluto: ▶ this video Working directly with the source files is just one of the niceties it has.
It is linked in the article, but I would like to draw attention to the wonderful JuliaCon talk presenting Pluto: ▶ this video
The game changer for ordinary technical programming folks from JuliaCon 2020 is the introduction of a new "reactive" notebook, Pluto.jl. "Reactive" means that -- unlike Jupyter -- it automatically updates the whole notebook, like a spreadsheet, when you change a value in any cell. I am a Julia and Jupyter newbie, but I picked up on it easily. Watch the following video made by Pluto's creators: ▶ this video Go here for Pluto installation instructions: link One thing that tripped me up, which is a generic Julia REPL issue: You enter the Julia package manager with "]" on the Julia> command line -- but how do you exit the package manager? Answer: Either Backspace or Ctrl-C.
The Pluto notebook for Julia does exactly the same. It creates dependencies between code cells and data automatically. If you change any data or code, that code ripples through through the rest of the notebook. So e.g. you could bind a slider to a variable and if that variable is used in a plot, dragging that slider will modify the plot in realtime. Demonstration of Pluto.jl here: ▶ this video
The closest may be Pluto.jl ▶ this video In Pluto plots, calculations get bound to data and when you change that data the effects immediately ripple through. Personally if I work with table data in Julia, I will use it with something like Table Tool link It lets you view and edit a CSV file. Saving and loading CSV files from Julia is very quick anyway. You can use a couple of key strokes to bring back a previous command. You also got some newer ones such as Tad: link
Really happy to see that the good ideas from Observable notebooks are being copied elsewhere. I don't use Julia myself at the moment (although I think it's a beautiful language), but I know some people who will be very happy with this! Also, the playful enthusiasm in the presentation video linked in the description just makes me smile: ▶ this video
It's mentioned in the video [1], it does static analysis of the code to create a graph of dependencies (for example which cell uses a variable defined by another cell), so when you update any cell it will find what cells are affected by the change (the downstream nodes on a directed acyclic graph) and only evals the code on them (instead of running everything). Julia is particularly good for those kind of code analysis since it's a very Lispy language. It also does a trick of creating new modules to manipulate scope to make deleted variables/import/cells invisible (and therefore free to be garbage collected). [1] ▶ this video