Interactive notebooks ~ Pluto.jl | Fons van der Plas | JuliaCon 2020
The Julia Programming Language6 HN recommenders · recommended in 4 months, 2020-2021
48K views · 6 years ago · talk · evergreen
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.
1:01:04Introduction to Julia - Part 1 | SciPy 2014 | David Sanders
Enthought
80K views • 12 years ago
8:34APL at Julia's Speed | Shashi Gowda | JuliaCon 2016
The Julia Programming Language
3K views • 10 years ago
39:46JuliaRobotics: Making robots walk with Julia | Robin Deits
The Julia Programming Language
9K views • 8 years ago
16:04Jonathan Diegelman - Modeling Spacecraft Separation Dynamics in Julia
The Julia Programming Language
12K views • 5 years ago
52:40Keynote. Professor Steven G. Johnson | JuliaCon 2019
The Julia Programming Language
18K views • 7 years ago
45:31Bruce Hauman - Developing ClojureScript With Figwheel
ClojureTV
56K views • 11 years ago
1:06:00CppCon 2017: Juan Pedro Bolivar Puente “Postmodern immutable data structures”
CppCon
31K views • 9 years ago
54:58Keynote - JSON Graph: Reactive REST at Netflix
Association for Computing Machinery (ACM)
41K views • 11 years ago
26:34Shared memory parallelism in Julia | Kiran Pamnany | Cambridge Julia Meetup (May 2018)
The Julia Programming Language
7K views • 8 years ago
35:24The Unreasonable Effectiveness of Multiple Dispatch | Stefan Karpinski | JuliaCon 2019
The Julia Programming Language
79K views • 7 years ago
1:13:10Parsing with Derivatives
Stanford
13K views • 15 years ago
1:04:45Stanford Seminar - Concatenative Programming: From Ivory to Metal
Stanford Online
14K views • 8 years ago
6:22Interactive programming Flappy Bird in ClojureScript
Bruce Hauman
55K views • 12 years ago
43:16Pure Functional Programming in Excel • Felienne Hermans • GOTO 2016
GOTO Conferences
26K views • 10 years ago
1:10:16Saša Jurić - Parsing from first principles - WebCamp Zagreb 2019
WebCamp Zagreb
6K views • 6 years ago
39:15The Maximal Graph - Wilker Silva
ClojureTV
8K views • 6 years ago
52:09I Like Notebooks
Jeremy Howard
55K views • 6 years ago
1:06:24Rich Hickey: Deconstructing the Database
InfoQ
106K views • 14 years ago
56:13I don't like notebooks.- Joel Grus (Allen Institute for Artificial Intelligence)
O'Reilly
120K views • 8 years ago
1:14:32Building Your Own Dynamic Language
Stanford
21K views • 18 years ago
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.
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
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
It is linked in the article, but I would like to draw attention to the wonderful JuliaCon talk presenting Pluto: ▶ 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
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
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.