By the time of the 2011 special issue, the scientific Python ecosystem had gained
SymPy, the symbolic mathematics and computer algebra system, and
Cython \cite{Behnel_2011}, a solution to compile portions of a Python program to obtain faster execution. An important contribution for lowering the bar to adoption of scientific Python was the Enthought Python Distribution, which was free for academic users. It relieved users from the laborious installation of every library individually. The SciKits (
https://www.scipy.org/scikits.html), or SciPy Toolkits, began appearing on the scene:
scikit-learn
(
https://scikit-learn.org/), for predictive data analysis and machine learning
\cite{j2011}, and
scikit-image
(
https://scikit-image.org), for image processing
\cite{van_der_Walt_2014}, have since become essential in many scientific contexts. And a new, powerful and flexible Python library for analysis and manipulation of data in the form of labeled tables and time series,
pandas
, sparked a wave of adoption for statistical modeling
\cite{w2011}. The state of the ecosystem at that time was expertly reviewed by Fernando Pérez, Brian Granger, and John Hunter
\cite{Perez_2011}. But the last ten years have seen an explosion of innovation, beyond the wildest dreams of these leaders.
In the March/April 2021 issue, CiSE is proud to feature several articles showcasing
Jupyter in computational science. The showpiece is an invited article by Jupyter co-founders Brian Granger and Fernando Pérez
\cite{Granger_2021}. They shift the focus of our conversation about problem-solving environments to the human angle: the researcher interactively exploring a scientific question or analyzing data, and the community of people collaborating and advancing their field. Jupyter derives from the IPython Notebook, a browser-based application to compose documents that add computable content to all the other kinds of content that a browser can display: formatted text, images, video, equations, etc. It is a concept inspired by the Mathematica notebook interface, introduced in 1988, and translated to the Python world by the Sage Notebook, starting in 2006. The powerful idea of the Sage Notebook that lives on in Jupyter is connecting a web application serving as a graphical user interface—where the user's text inputs and the computational outputs are shown—to a back-end that runs the Python interpreter. While the server is running, the state is available to continue interactively computing. On shutting it down, the notebook document can be saved thereby preserving the inputs and outputs, together with any text and multi-media content added by the user. Jupyter took these ideas into the modern web era by employing open formats, protocols and applications that work equally on a laptop and on remote cloud or HPC systems. The communication protocol between the web application and the back-end is language-agnostic, which quickly led to Notebook support for other languages, like Julia and R (and the new name Jupyter). Dozens of so-called Jupyter kernels now allow computing in many different languages (including interactive use of Fortran and C++), though Python continues to be the most popular by far. Serving Jupyter to multiple-users in a corporation or university became possible with
JupyterHub (
https://jupyter.org/hub), which removes the need for users to install any software on their local machine while delivering a uniform environment to them. This provides an ideal solution for academic settings, where large-scale computing and data science education initiatives have always been hampered by individual students' software and hardware needs. Jupyter was rapidly adopted by tech giants like Google, Amazon and Netflix; by financial behemoths like Bloomberg; by NASA and the LIGO collaboration, which released Jupyter notebooks with the analysis that proved the existence of gravitational waves (
https://www.gw-openscience.org/events/GW150914/); and by computing and data science educators everywhere. On being awarded the ACM Software System Award in 2017, the citation reads that the tools of Project Jupyter "have become a de facto standard for data analysis in research, education, journalism, and industry" (
https://awards.acm.org/award_winners/perez_9039634). Like Granger and Pérez note in the previous issue of CiSE, Jupyter now has many millions of users worldwide and many thousands of organizations use Jupyter in their day-to-day operations. They explain the project's success by virtue of being a tool of thought, a new medium for communication (via computational narratives), and a community of practice.