GitHub has announced the launch of advanced support for Jupyter (formerly IPython), which includes rendering of Jupyter notebooks in HTML and the ability for Jupyter users to leverage the collaborative features of the GitHub platform.
Jupyter consists of components that were formerly part of IPython, a project that began as an interactive Python command shell. IPython later evolved to include language-agnostic features such as notebook, notebook viewer, notebook conversion tools, widgets and visualization, and rich REPL protocol. IPython's language-agnostic features were recently split off and moved to their own project, Project Jupyter.
A popular IPython feature that is now a part of Jupyter is the browser-based notebook. A notebook is a tool that can be used for computational research, data analysis and other advanced computing use cases. A Jupyter notebook allows for “interactive authoring of literate computation” where users can combine text, mathematics, code execution and other rich media. Jupyter notebooks, which are JSON-formatted text documents, are used to save a complete copy of the computations that are generated.
Advanced support for Jupyter means that GitHub is now able to convert Jupyter notebooks into HTML, a file format that is human readable. At the time of this writing, more than 200,000 Jupyter notebooks were already stored on GitHub. All of these notebooks will render as readable HTML immediately upon the launch of Jupyter support. Advanced support for Jupyter makes it possible for GitHub users to view notebooks without having to install notebook viewer software or having to know or use Python. In addition, Jupyter users now have the ability to share their notebooks and collaborate on data-intensive projects directly on GitHub.
We reached out to Arfon Smith, chief scientist at GitHub (and a Jupyter user), who explained to ProgrammableWeb why advanced support for Jupyter is an important update of the GitHub platform.
Smith told ProgrammableWeb that adding advanced support for Jupyter to the GitHub platform will benefit a lot of users, especially those using GitHub to collaborate on code visualization and data-intensive projects. He explained that Jupyter is especially popular with the education community and that many academics use Jupyter and GitHub to create and collaborate on whole textbooks, academic papers, class lectures and more.
Jupyter is also popular with data scientists who use the platform for data-intensive research. Eli Bressert, head of data labs at Stitch Fix, told ProgrammableWeb:
At the team level, Jupyter is a great tool for communication. Notebooks allow one to fluidly mix text, code, equations, data and plots in whatever way makes the most sense to explain something. You can organize your explanation around your thought process rather than around the artificial lines determined by the tools you're using. You have a single Jupyter notebook instead of a bunch of disconnected files, one containing SQL code, another Python, a third LaTeX to typeset equations.
He went on to say, "When the analysis is finished, the Jupyter notebook remains a 'living,' interactive research notebook. Redoing the analysis using new data or different assumptions is simple."
Both IPython and Jupyter feature a set of APIs to programmatically access specific platform components. The Jupyter Project team has been working on stabilizing some of these APIs, including notebook format and message protocol. IPython APIs that access language-agnostic features will be a part of the Jupyter set of APIs.
Jupyter users who are sharing and storing their notebooks on GitHub can also use the GitHub API to access their repositories, read and create Gists, search for Jupyter notebooks on GitHub and more.
"GitHub has always been about making it easier to work with others when writing code," said Smith. "With our launch of advanced Jupyter notebook support and Git Large File Storage, we're making this powerful collaborative model even more accessible to the world of data science and academia."