and programming are central.
Several elements in the Jupyter ecosystem play complementary roles in support of CoP. Most prominently,
the combination of natural language and computational elements into a single narrative, supports both
individual exploration of ideas and sharing of the resulting knowledge in a reusable, reproducible manner
that encourages feedback and collaboration. Such computational narratives are particularly valuable in
research and education, fields where exploration, discovery and shared understanding of complex problems
are key objectives.
In turn, a body of knowledge encoded in such narratives fuels the cycle of collaboration that builds the CoP:
code can be executed incrementally with each result being understood by someone other than its author
before moving on to the next cell. And having natural language narrative woven with the code makes it
possible to communicate context and meaning beyond what programming languages are designed to express.
Furthermore, other aspects of Jupyter beyond Notebooks support the growth of CoP, as we illustrate now.
Notebook sharing:
when the IPython Notebook was released in 2011, sharing work in notebooks would
require the recipient to also have the software installed to view it, or the author to convert the notebook
to a widely used format like HTML or PDF. The nbviewer service made this conversion a one-click action.
Originally prototyped by M. Bussonnier in 2012, it enabled anyone to easily share the rendered HTML
version of any publicly available notebook as a link that readers could access with a web browser. We
observed a rapid rise of notebook sharing via blogs and social media, as people would publish their work in
this format. This pattern of sharing has continued and expanded as other platforms, such as GitHub, have
added builtin notebook rendering. Today, Jupyter Book facilitates sharing entire collections of notebooks
that form complete interactive “textbooks”; these can be hosted online as static HTML websites at no cost
via tools like GitHub Pages, and as live, executable notebooks via Binder.