Project Jupyter and IPython

Overview

Jupyter and IPython are a pair of open source projects that together offer an open-source (BSD-licensed), interactive computing environment for Python, Julia, R and other languages.


Enable the creation and sharing of computational narratives across a wide range of contexts and audiences
Make computational reproducibility possible and enjoyable
Minimize the "distance" between a human user and their code/data through interactivity

In [1]:
%load_ext load_style
%load_style images-pad.css
from IPython.display import Image


IPython


In [2]:
Image("images/ipython_logo.png", width=400)


Out[2]:
  • Started in 2001 by Fernando Perez, who continues to lead the project from UC Berkeley.
  • I joined in 2004.
  • Originally focused on interactive computing in Python only.
  • I wrote the IPython Notebook in 2011.
  • Starting in 2012, IPython began to include other languages such as Julia, R, Ruby, etc.
  • Moving forward, IPython contains only the Python specific parts of the architecture:
    • Interactive Python shell
    • A kernel for running Python code in the Jupyter architecture
    • Tools for interactive parallel computing in Python

Jupyter


In [3]:
Image("images/jupyter_logo.png", width=400)


Out[3]:

http://jupyter.org

  • Founded in the Summer of 2014 by the IPython development team.
  • Goal: carry forward the above goals of reproducible interactive computing for all programming languages:
    • Python
    • Julia
    • R
    • Scala
    • ...
    • See this page for a list of the >50 currently supported languages.
  • A home for the language independent parts of the architecture:
    • A network protocol for applications to talk to kernels that run code for interactive computations.
    • A set of applications that enable users to write and run code on those kernels.
    • Notebook file format and conversion tools (nbconvert).
  • Notebook sharing service (https://nbviewer.jupyter.org/).