Project Jupyter () is a project with goals to develop
open-source software
Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Op ...
,
open standards
An open standard is a standard that is openly accessible and usable by anyone. It is also a prerequisite to use open license, non-discrimination and extensibility. Typically, anybody can participate in the development. There is no single definitio ...
, and services for
interactive computing
In computer science, interactive computing refers to software which accepts input from the user as it runs.
Interactive software includes commonly used programs, such as word processors or spreadsheet applications. By comparison, non-interactive ...
across multiple
programming languages
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
. It was spun off from
IPython in 2014 by
Fernando Pérez and Brian Granger. Project Jupyter's name is a reference to the three core programming languages supported by Jupyter, which are
Julia
Julia is usually a feminine given name. It is a Latinate feminine form of the name Julio and Julius. (For further details on etymology, see the Wiktionary entry "Julius".) The given name ''Julia'' had been in use throughout Late Antiquity (e.g ...
,
Python
Python may refer to:
Snakes
* Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia
** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia
* Python (mythology), a mythical serpent
Computing
* Python (pro ...
and
R. Its name and logo are an
homage to
Galileo
Galileo di Vincenzo Bonaiuti de' Galilei (15 February 1564 – 8 January 1642) was an Italian astronomer, physicist and engineer, sometimes described as a polymath. Commonly referred to as Galileo, his name was pronounced (, ). He was ...
's discovery of the
moons of Jupiter
There are 82 known moons of Jupiter, not counting a number of moonlets likely shed from the inner moons. All together, they form a satellite system which is called the Jovian system. The most massive of the moons are the four Galilean moons: ...
, as documented in notebooks attributed to Galileo. Project Jupyter has developed and supported the interactive computing products Jupyter Notebook, JupyterHub, and JupyterLab. Jupyter is financially sponsored by
NumFOCUS.
History
![Galileo Galilei (1564 - 1642) - Serenissimo Principe - manuscript with observations of Jupiter and four of its moons, 1610](https://upload.wikimedia.org/wikipedia/commons/b/b3/Galileo_Galilei_%281564_-_1642%29_-_Serenissimo_Principe_-_manuscript_with_observations_of_Jupiter_and_four_of_its_moons%2C_1610.png)
The first version of Notebooks for IPython was released in 2011 by a team including Fernando Pérez, Brian Granger, and Min Ragan-Kelley.
In 2014, Pérez announced a spin-off project from IPython called Project Jupyter. IPython continues to exist as a Python
shell
Shell may refer to:
Architecture and design
* Shell (structure), a thin structure
** Concrete shell, a thin shell of concrete, usually with no interior columns or exterior buttresses
** Thin-shell structure
Science Biology
* Seashell, a hard o ...
and a kernel for Jupyter, while the
notebook
A notebook (also known as a notepad, writing pad, drawing pad, or legal pad) is a book or stack of paper pages that are often ruled and used for purposes such as note-taking, journaling or other writing, drawing, or scrapbooking.
History
...
and other
language-agnostic
Language-agnostic programming or scripting (also called language-neutral, language-independent, or cross-language) is a software paradigm in which no particular language is promoted.
In introductory instruction, the term refers to teaching princip ...
parts of IPython moved under the Jupyter name. Jupyter supports execution environments (called "kernels") in several dozen languages, including Julia, R,
Haskell
Haskell () is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research and industrial applications, Haskell has pioneered a number of programming lan ...
,
Ruby
A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sa ...
, and Python (via the IPython kernel).
In 2015, about 200,000 Jupyter notebooks were available on
GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous ...
. By 2018, about 2.5 million were available.
In January 2021, nearly 10 million were available, including notebooks about the
first observation of gravitational waves
The first direct observation of gravitational waves was made on 14 September 2015 and was announced by the LIGO and Virgo collaborations on 11 February 2016. Previously, gravitational waves had been inferred only indirectly, via their effect on t ...
and about the 2019 discovery of a
supermassive black hole
A supermassive black hole (SMBH or sometimes SBH) is the largest type of black hole, with its mass being on the order of hundreds of thousands, or millions to billions of times the mass of the Sun (). Black holes are a class of astronomical ob ...
.
Major
cloud computing
Cloud computing is the on-demand availability of computer system resources, especially data storage ( cloud storage) and computing power, without direct active management by the user. Large clouds often have functions distributed over mul ...
providers have adopted the Jupyter Notebook or derivative tools as a frontend interface for cloud users. Examples include
Amazon SageMaker Notebooks,
Google's Colaboratory,
and
Microsoft's
Microsoft Corporation is an American multinational corporation, multinational technology company, technology corporation producing Software, computer software, consumer electronics, personal computers, and related services headquartered at th ...
Azure Notebook.
Visual Studio Code
Visual Studio Code, also commonly referred to as VS Code, is a source-code editor made by Microsoft with the Electron Framework, for Windows, Linux and macOS. Features include support for debugging, syntax highlighting, intelligent code complet ...
supports local development of Jupyter notebooks. As of July 2022, the Jupyter extension for VS Code has been downloaded over 40 million times, making it the second-most popular extension in the VS Code Marketplace.
''
The Atlantic
''The Atlantic'' is an American magazine and multi-platform publisher. It features articles in the fields of politics, foreign affairs, business and the economy, culture and the arts, technology, and science.
It was founded in 1857 in Boston, ...
'' published an article entitled "The Scientific Paper Is Obsolete" in 2018, discussing the role of Jupyter Notebook and the
Mathematica notebook in the future of scientific publishing.
Economist
Paul Romer
Paul Michael Romer (born November 6, 1955) is an American economist and policy entrepreneur who is a University Professor in Economics at New York University. Romer is best known as the former Chief Economist of the World Bank and for co-recei ...
, in response, published a blog post in which he reflected on his experiences using Mathematica and Jupyter for research, concluding in part that Jupyter "does a better job of delivering what
Theodore Gray
Theodore W. "Theo" Gray is a co-founder of Wolfram Research, science author, and co-founder of app developer Touch Press.
Education
Theodore Gray was educated at the University of Illinois Laboratory High School. He would later graduate wit ...
had in mind when he designed the Mathematica notebook."
In 2021, ''
Nature
Nature, in the broadest sense, is the physics, physical world or universe. "Nature" can refer to the phenomenon, phenomena of the physical world, and also to life in general. The study of nature is a large, if not the only, part of science. ...
'' named Jupyter as one of ten computing projects that transformed science.
Jupyter Notebook
Jupyter Notebook can colloquially refer to two different concepts, either the user facing application to edit code and text, or the underlying file format which is interoperable across many implementations.
Jupyter Notebook Applications
Jupyter Notebook (formerly IPython Notebook) is a
web-based interactive computational environment for creating
notebook
A notebook (also known as a notepad, writing pad, drawing pad, or legal pad) is a book or stack of paper pages that are often ruled and used for purposes such as note-taking, journaling or other writing, drawing, or scrapbooking.
History
...
documents. Jupyter Notebook is built using several
open-source libraries, including
IPython,
ZeroMQ
ZeroMQ (also spelled ØMQ, 0MQ or ZMQ) is an asynchronous messaging library, aimed at use in distributed or concurrent applications. It provides a message queue, but unlike message-oriented middleware, a ZeroMQ system can run without a dedicated ...
,
Tornado
A tornado is a violently rotating column of air that is in contact with both the surface of the Earth and a cumulonimbus cloud or, in rare cases, the base of a cumulus cloud. It is often referred to as a twister, whirlwind or cyclone, altho ...
,
jQuery
jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax. It is free, open-source software using the permissive MIT License. As of Aug 2022, jQuery is used ...
,
Bootstrap, and
MathJax
MathJax is a cross-browser JavaScript library that displays mathematical notation in web browsers, using MathML, LaTeX and ASCIIMathML markup. MathJax is released as open-source software under the Apache License.
The MathJax project started i ...
. A Jupyter Notebook application is a browser-based
REPL containing an ordered list of input/output cells which can contain code, text (using
Markdown
Markdown is a lightweight markup language for creating formatted text using a plain-text editor. John Gruber and Aaron Swartz created Markdown in 2004 as a markup language that is appealing to human readers in its source code form. Markdown i ...
), mathematics,
plots and
rich media
Interactive media normally refers to products and services on digital computer-based systems which respond to the user's actions by presenting content such as text, moving image, animation, video and audio. Since its early conception, various f ...
.
Jupyter Notebook is similar to the notebook interface of other programs such as
Maple
''Acer'' () is a genus of trees and shrubs commonly known as maples. The genus is placed in the family Sapindaceae.Stevens, P. F. (2001 onwards). Angiosperm Phylogeny Website. Version 9, June 2008 nd more or less continuously updated since http ...
,
Mathematica, and
SageMath
SageMath (previously Sage or SAGE, "System for Algebra and Geometry Experimentation") is a computer algebra system (CAS) with features covering many aspects of mathematics, including algebra, combinatorics, graph theory, numerical analysis, numbe ...
, a computational interface style that originated with Mathematica in the 1980s. Jupyter interest overtook the popularity of the Mathematica notebook interface in early 2018.
JupyterLab is a newer user interface for Project Jupyter, offering a flexible user interface and more features than the classic notebook UI. The first stable release was announced on February 20, 2018.
In 2015, a joint $6 million grant from
The Leona M. and Harry B. Helmsley Charitable Trust
The Leona M. and Harry B. Helmsley Charitable Trust is a foundation established in 1999 and administered by four trustees selected by Leona Helmsley. The Trust supports a wide range of organizations, with a major focus on health and medical resea ...
,
The Gordon and Betty Moore Foundation, and
The Alfred P. Sloan Foundation funded work that led to expanded capabilities of the core Jupyter tools, as well as to the creation of JupyterLab.
GitHub announced in November 2022 that JupyterLab would be available in its online Coding platform called Codespace.
JupyterHub is a multi-user server for Jupyter Notebooks. It is designed to support many users by spawning, managing, and proxying many singular Jupyter Notebook servers.
Jupyter Notebook Documents
A Jupyter Notebook document is a
JSON
JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
file, following a versioned schema, usually ending with the ".ipynb" extension.
The main parts of the Jupyter Notebooks are: Metadata, Notebook format and list of cells. Metadata is a data Dictionary of definitions to set up and display the notebook. Notebook Format is a version number of the software. List of cells are different types of Cells for Markdown (display), Code (to execute), and output of the code type cells.
While ".ipynb" and
JSON
JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
are the most common and default format it is possible to forgo some features (like storing images and metadata), and save notebook as markdown documents using extension like JupyText.
Jupytext is often in conjunction with version control to make diffing and merging of notebook simpler.
Awards
* In 2012,
Fernando Pérez received the
for his work on
IPython, the precursor to Project Jupyter.