IPython: From Interactive Computing to Computational Narratives

Sunday, 15 February 2015: 1:30 PM-4:30 PM
Room LL21F (San Jose Convention Center)
Fernando Perez, University of California, Berkleley, CA
IPython is an open source environment for interactive and parallel computing
that supports all stages in the lifecycle of a scientific idea: individual
exploration, collaborative development, large-scale production using parallel
resources, publication and education. 
While it started as a tool for Scientific Computing witht the Python
programming language, the IPython project has evolved over the years into a
language-agnostic architecture that supports research, publication and
education across the spectrum of modern languages.  This growth in scope was
marked in 2014 by an evolution of the project's name into "Project Jupyter", an
uumbrella effort of of open-source software tools that data science
reproducible and multi-language (Python, Julia, R, etc.). The main application
offered by Jupyter is the Jupyter Notebook, a web-based interactive computing
platform that allows users to author data- and code-driven narratives that
combine live code, equations, narrative text, interactive dashboards and other
rich media. These documents provide a complete record of a computation that can
be shared with others.
The Jupyter Notebook is being used in all areas of academic (UC Berkeley,
Stanford, UW, NYU, Cal Poly, MIT, Harvard, Columbia, etc.) and government (NASA
JPL, LBL, KBase, White House Hackathon) research as well as industry (Google,
IBM, Facebook, Oracle, Otto Group, Microsoft, Bloomberg, JP Morgan, WhatsApp,
O’Reilly, Quantopian, GraphLab, Enthought, Continuum, Authorea, NY Times, etc.)
and journalism (538, BuzzFeed, NYT, etc.). Because the architecture and
building blocks of Jupyter are open, they are being used to build numerous
other commercial and non-profit products and services. The Jupyter Notebook has
between 500,000 and 1.5 million individual users worldwide.
I will describe how a single architecture covers this entire use spectrum: the
underlying protocols provide a language-agnostic environment to explore data,
run production analyses and share results in a variety of output formats, from
websites to printed books.  I will illustrate this with use cases taken from a
variety of disciplines and programming languages.