Interactive notebooks ~ Pluto.jl | Fons van der Plas | JuliaCon 2020

The Julia Programming Language · 47K views · 2020 · 23:38

Open on YouTube

Data science & statisticsTesting, debugging & developer toolsSoftware architecture & designtalk

Why Hacker News recommends it

HN recommends it as an enthusiastic demo of spreadsheet-like reactive notebooks, which commenters think new notebook projects should copy.

What it is

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.

Recommended by 6 HN commenters across 4 different months, 2020 to 2021.

What Hacker News said

Strong rec pmdulaney · 2020-08 · on “JuliaCon 2020 in Retrospective”

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.

Strong rec snicker7 · 2020-11 · on “An Introduction to Pluto”

It is linked in the article, but I would like to draw attention to the wonderful JuliaCon talk presenting Pluto: [this video]

Strong rec mathnmusic · 2020-12 · on “Niex: Jupyter Notebooks but Using Elixir”

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.

Strong rec wodenokoto · 2021-12 · on “Bad Data and Data Engineering: Dissecting Google Play Music Takeout Data”

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 presentat

Recommends vanderZwan · 2020-08 · on “Pluto.jl – a reactive, lightweight, simple notebook”

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]

Recommends socialdemocrat · 2020-11 · on “Ditch Excel and Use Julia Data Frames”

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]

Recommends socialdemocrat · 2020-11 · on “Ditch Excel and Use Julia Data Frames”

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]

Cites ddragon · 2020-08 · on “Pluto.jl – a reactive, lightweight, simple notebook”

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]