Skip to content
0:00 / 0:00

#pluto.jl#julia#reactivenotebooks

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

The Julia Programming Language

91K subscribers • 17 videos on Hallway

YouTube

Intermediate. Assumes working knowledge.

47K views6 years ago7 recommendations

Tools and practiceProgramming languagesOpen sourceData engineering and warehouses

Fons van der Plas introduces Pluto.jl, a reactive notebook system for Julia that automatically updates cells based on a dependency graph.

Introducing a fresh, new notebook system for rapid prototyping! Pluto understands global references between cells, and reactively re-evaluates cells affected by a code change. At JuliaCon, we will show how Pluto can liven up your workflow. Whether you’re a scientist, a finance professional or an engineer, you use notebooks like Jupyter to tell a story. You fiddle a bit with your code, running cells here and there, and when you’re done - you restart the kernel and keep your fingers crossed that it’ll all work together when you press “run all”. 🙋 In Pluto, things work differently. When you change a variable, Pluto automatically re-runs the cells that refer to it. And when you delete a cell, the variables, methods and imports from the old code disappear. Unlike Jupyter or Matlab, there is no mutable workspace, but rather a one-to-one correspondence between variables and code. 🚨 Reactivity is not just fun for mathematical tricks! It guarantees that the code you see exactly matches the variables you're working with, eliminating bugs before you even knew you had them. ⚡ Your notebook becomes interactive by splitting your code into multiple cells! Changing one cell instantly shows effects on all other cells, giving you a fast and fun way to experiment with your model. And to really spice up your notebook, you can use HTML sliders, or even custom JavaScript widgets, to drive your Julia variables. Change λ = 5 to @bind λ Slider(), and all cells that use λ are controlled by a slider. 💾 Notebooks are saved as pure Julia files and can be exported as rich documents with cell output to HTML or PDF. By separating source code and output, you can take full advantage of git for version control and you can import Pluto notebooks as if they are written in a regular editor. After a live demo, the second part of the talk will unveil some of the tricks that power Pluto. The core concepts are: - static code analysis to find global definitions and references in cells; - directed graph of cells, which tells Pluto which cells to run, in which order; - managed workspace for code to live in, and cleaning the workspace in milliseconds; - responsive connection between JavaScript clients and Julia. Pluto is written in pure Julia, which comes with two benefits: first, it’s easily installable as a package without requiring Python - you only need Julia and a web browser. Second, it is ready to be improved by Julia developers who we hope to inspire at the conference. Pluto is an exciting project to work on, and we are eager to hear your ideas! Resources Pluto.jl home page: plutojl.org/ Pluto.jl repository: github.com/fonsp/Pluto.jl Contents Opening Introduction Why we made Pluto? Programming is easy, programming languages are powerful, but our environments are 70s vintage Jupyter notebooks: strong points and pain points Alternatives to Jupyter Enter Pluto. Live demo Pluto doesn't allow multiple expressi

Why it's here

7 people recommend this

What people say. Recommended as an excellent presentation of Pluto.jl, highlighting its reactive spreadsheet-like execution model and advantages over Jupyter.

pmdulaneyon Hacker News • Recommends

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: link to 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.

snicker7on Hacker News • Recommends

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: link to this video

mathnmusicon Hacker News • Recommends

On “Niex: Jupyter Notebooks but Using Elixir”

I think every new notebook project should take ideas from Julia's Pluto: link to this video Working directly with the source files is just one of the niceties it has.

wodenokotoon Hacker News • Recommends

On “Bad Data and Data Engineering: Dissecting Google Play Music Takeout Data”

…ks 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: link to this video…

Sietsebbon Lobsters • Recommends

Interactive notebooks ~ Pluto.jl

vanderZwanon Hacker News • Recommends

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: link to this video

socialdemocraton Hacker News • Recommends

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: link to this video

socialdemocraton Hacker News • Recommends

On “Ditch Excel and Use Julia Data Frames”

The closest may be Pluto.jl link to 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

ddragonon Hacker News • Mentions

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 link to this video