Interactivity as a fundamental principle
Just like a spreadsheet, Pluto understands variable links between code cells, and will re-run a cell when a dependency changes.
Reactivity means interactivity
Your programming environment 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.
In this example, changing the parameter
A and running the first cell will directly re-evaluate the second cell and display the new plot.
Sliders, buttons and more!
Pluto lets you bind a Julia variable to an GUI element. Moving a slider from 0 to 100 will actually change one of your variables from
100! Combined with reactivity, this is a very powerful tool!
It's that simple to make your Julia code come to life! That's because reactivity and widget interactivity are the same concept! Less to learn, more to discover.
The package PlutoUI.jl contains lots of common widgets like sliders, textfields and buttons. Need something different? PlutoUI.jl was made by us, but anyone can create their own special widgets! We give you full control over HTML, CSS and JS, with powerful API to connect a web component to Julia.
Pluto notebooks are reproducible by default
From package management to execution order, Pluto goes to great lengths to make sure that someone else will be able to run your notebook when you're done!
Built-in package manager
Pluto uses code analysis to understand which packages are being used in a notebook, and it automatically manages a package environment for your notebook. You no longer need to install packages, you can directly import any registered package like
DataFrames and use it.
Pluto offers an environment where changed code takes effect instantly and where deleted code leaves no trace.
Unlike Jupyter or Matlab, there is no mutable workspace, but rather, an important guarantee:
At any instant, the program state is completely described by the code you see.
No hidden state, no hidden bugs.
A fresh approach to scientific computing
Pluto is an environment to work with the Julia programming language. Easy to use like Python, fast like C. (We think it's the future!)
Julia was designed from the beginning for high performance. Julia programs compile to efficient native code for multiple platforms via LLVM.
Julia is dynamically typed, feels like a scripting language, and has good support for interactive use.
Reproducible environments make it possible to recreate the same Julia environment every time, across platforms, with pre-built binaries.
Julia uses multiple dispatch as a paradigm, making it easy to express many object-oriented and functional programming patterns. The talk on the Unreasonable Effectiveness of Multiple Dispatch explains why it works so well.
Julia provides asynchronous I/O, metaprogramming, debugging, logging, profiling, a package manager, and more. One can build entire Applications and Microservices in Julia.
Julia is an open source project with over 1,000 contributors. It is made available under the MIT license. The source code is available on GitHub.
Try Pluto in your browser
Go to binder.plutojl.org to use Pluto in your browser, powered by mybinder.org.
Try Pluto online
We have a collection of featured notebooks that showcase what you can do. Every featured notebook has a button to run the notebook in your browser.
Go to featured.plutojl.org
Let's install Pluto!
Pluto can be installed and updated using Julia's package manager.
Step 1: Install Julia 1.10.0
Go to https://julialang.org/downloads and download the current stable release.
Step 2: Run Julia
After installing, make sure that you can run Julia. On some systems, this means searching for the “Julia 1.10” program installed on your computer; in others, it means running the command
julia in a terminal.
Make sure that you can execute
1 + 1.
Step 3: Install Pluto
In the Julia terminal, type:
import Pkg; Pkg.add("Pluto")
This will use Julia's package manager to install the Pluto package.
This might take a couple of minutes, so you can go get yourself a cup of tea!
Step 4: Run Pluto
In the Julia terminal, type:
import Pluto; Pluto.run()
Pluto will automatically open your browser when it's ready. 🎉