-
-
Notifications
You must be signed in to change notification settings - Fork 296
π‘ 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 notebooks 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!
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.
How to use multiple threads in Pluto.jl? nthreads()
says 1 somehow
You can, but you need to set
JULIA_NUM_THREADS
environment variable as described in the documentation for theworker
spawned by Pluto.jl to pick up.
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. There are some exceptions:
- packages that are made specifically for the REPL or Jupyter
Distributed
, and packages that use it (#300)