Skip to content

πŸ’‘ Choosing Pluto.jl

Shashank Polasa edited this page Sep 4, 2020 · 7 revisions

πŸ’‘ Choosing Pluto.jl

How is Pluto.jl different from Jupyter?

Pluto.jl was built from the ground up to be a fresh new notebook system, written in Julia. The main differences are that Pluto noteboks are reactive, and that your notebooks are stored as executable .jl files.


What's the deal with reactivity?

You use cells to define variables and functions to be used later. In a reactive notebook, changing a variable or function will automagically re-evaluate all other cells that use it. Just like a speadsheet editor! See this gif for a demo.

Programming is hard sometimes. Even more so when you need to keep track not only of your code, but also of your session's hidden state. Pluto gives you confidence that the code you see exactly matches the variables you're working with, eliminating bugs before you even knew you had them.


Will all cells be re-evaluated when I change something?

No. Pluto.jl figures out the dependency graph between cells, and knows exactly which cells to re-evaluate, in which order. A cell never executes twice.


Will my code be slower?

Nope - Pluto.jl analyses your code, and then executes the code without modifications. Variables and functions are not wrapped in special objects. After analysis, your code will run on its own.


Can I use Plots!

Yes you can! All plotting back-ends should work right away.


Can I use [my favourite package]?

Yes you can! (Probably!) Your code is evaluated as-is, so if it works in the REPL or in Jupyter, it will work in Pluto.jl. The only exceptions are packages that are made specifically for the REPL or Jupyter.

Calls to external functions are not tracked by the reactivity fairies.


Clone this wiki locally