Notebook interface

Last updated
Jupyter Notebook, an example of a notebook interface Paws notebook showing how to load wikidata item dictionary.png
Jupyter Notebook, an example of a notebook interface

A notebook interface or computational notebook is a virtual notebook environment used for literate programming, a method of writing computer programs. [1] Some notebooks are WYSIWYG environments including executable calculations embedded in formatted documents; others separate calculations and text into separate sections. Notebooks share some goals and features with spreadsheets and word processors but go beyond their limited data models.

Contents

Modular notebooks may connect to a variety of computational back ends, called "kernels". Notebook interfaces are widely used for statistics, data science, machine learning, and computer algebra. [2]

At the notebook core is the idea of literate programming tools which "let you arrange the parts of a program in any order and extract documentation and code from the same source file.", [3] the notebook takes this approach to a new level extending it with some graphic functionality and a focus on interactivity. According to Stephen Wolfram: "The idea of a notebook is to have an interactive document that freely mixes code, results, graphics, text and everything else.", [4] and according to the Jupyter Project Documentation: "The notebook extends the console-based approach to interactive computing in a qualitatively new direction, providing a web-based application suitable for capturing the whole computation process: developing, documenting, and executing code, as well as communicating the results. The Jupyter notebook combines two components". [5]

History

VisiCalc, the first spreadsheet for personal computers, was published in 1979. Its idea of visual calculations is still widely used today but limited to documents that fit into a table.

Research on WYSIWYG mathematical systems supporting mixed text and calculations with a document metaphor begin to be published in 1987: [6] Ron Avitzur's Milo, [7] William Schelter's INFOR, Xerox PARC's Tioga [8] and CaminoReal. [9]

The earliest commercial system using the document metaphor was MathCAD , which also came out in 1987. [10] Wolfram Mathematica 1.0 followed in 1988. [11] [12] [13] Later came Maple 5.2 (1992) [14] and Macsyma 2.0 (1995). [15]

As the notebook interface increased in popularity over the next two decades, notebooks for various computational back ends ("kernels") have been introduced, including MATLAB, Python, Julia, R, Scala, Elixir, SQL, and others. [16] [17]

The variety of notebook interface has since been extended and new forms are still evolving. [18]

Use

Notebooks are traditionally used in the sciences as electronic lab notebooks to document research procedures, data, calculations, and findings. Notebooks track methodology to make it easier to reproduce results and calculations with different data sets. [16] [17] In education, the notebook interface provides a digital learning environment, particularly for the teaching of computational thinking. [19] [4] Their utility for combining text with code makes them unique in the realm of education. Digital notebooks are sometimes used for presentations as an alternative to PowerPoint and other presentation software, as they allow for the execution of code inside the notebook environment. [20] [21] Due to their ability to display data visually and retrieve data from different sources by modifying code, notebooks are also entering the realm of business intelligence software. [16] [22] [23] [24]

Notable examples

Example of projects or products of notebooks:

Free/open-source notebooks

Partial copyleft

Proprietary notebooks

Related Research Articles

<span class="mw-page-title-main">Wolfram Mathematica</span> Computational software program

Wolfram Mathematica is a software system with built-in libraries for several areas of technical computing that allows machine learning, statistics, symbolic computation, data manipulation, network analysis, time series analysis, NLP, optimization, plotting functions and various types of data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other programming languages. It was conceived by Stephen Wolfram, and is developed by Wolfram Research of Champaign, Illinois. The Wolfram Language is the programming language used in Mathematica. Mathematica 1.0 was released on June 23, 1988 in Champaign, Illinois and Santa Clara, California.

<span class="mw-page-title-main">Maxima (software)</span> Computer algebra system

Maxima is a powerful software package for performing computer algebra calculations in mathematics and the physical sciences. It is written in Common Lisp and runs on all POSIX platforms such as macOS, Unix, BSD, and Linux, as well as under Microsoft Windows and Android. It is free software released under the terms of the GNU General Public License (GPL).

Macsyma is one of the oldest general-purpose computer algebra systems still in wide use. It was originally developed from 1968 to 1982 at MIT's Project MAC.

<span class="mw-page-title-main">Wolfram Research</span> American multinational company

Wolfram Research, Inc. is an American multinational company that creates computational technology. Wolfram's flagship product is the technical computing program Wolfram Mathematica, first released on June 23, 1988. Other products include WolframAlpha, Wolfram SystemModeler, Wolfram Workbench, gridMathematica, Wolfram Finance Platform, webMathematica, the Wolfram Cloud, and the Wolfram Programming Lab. Wolfram Research founder Stephen Wolfram is the CEO. The company is headquartered in Champaign, Illinois, United States.

<span class="mw-page-title-main">Mathcad</span> Computer system for mathematical calculation

Mathcad is computer software for the verification, validation, documentation and re-use of mathematical calculations in engineering and science, notably mechanical, chemical, electrical, and civil engineering. Released in 1986 on DOS, it introduced live editing (WYSIWYG) of typeset mathematical notation in an interactive notebook, combined with automatic computations. It was originally developed by Mathsoft, and since 2006 has been a product of Parametric Technology Corporation.

<span class="mw-page-title-main">IPython</span> Advanced interactive shell for Python

IPython is a command shell for interactive computing in multiple programming languages, originally developed for the Python programming language, that offers introspection, rich media, shell syntax, tab completion, and history. IPython provides the following features:

License proliferation is the phenomenon of an abundance of already existing and the continued creation of new software licenses for software and software packages in the FOSS ecosystem. License proliferation affects the whole FOSS ecosystem negatively by the burden of increasingly complex license selection, license interaction, and license compatibility considerations.

<span class="mw-page-title-main">Org-mode</span> Open source mode for GNU Emacs

Org Mode is a mode for document editing, formatting, and organizing within the free software text editor GNU Emacs and its derivatives, designed for notes, planning, and authoring. The name is used to encompass plain text files that include simple marks to indicate levels of a hierarchy, and an editor with functions that can read the markup and manipulate hierarchy elements.

Tensor software is a class of mathematical software designed for manipulation and calculation with tensors.

<span class="mw-page-title-main">PyCharm</span> Python programming integrated development environment

PyCharm is an integrated development environment (IDE) used for programming in Python. It provides code analysis, a graphical debugger, an integrated unit tester, integration with version control systems, and supports web development with Django. PyCharm is developed by the Czech company JetBrains and built on their IntelliJ platform.

<span class="mw-page-title-main">Spyder (software)</span> IDE for scientific programming in Python

Spyder is an open-source cross-platform integrated development environment (IDE) for scientific programming in the Python language. Spyder integrates with a number of prominent packages in the scientific Python stack, as well as other open-source software. Created by Pierre Raybaut and released in 2009 under the MIT license, since 2012 Spyder has been maintained and continuously improved by Python developers and the community.

<span class="mw-page-title-main">RStudio</span> Integrated development environment for R

RStudio IDE is an integrated development environment for R, a programming language for statistical computing and graphics. It is available in two formats: RStudio Desktop is a regular desktop application while RStudio Server runs on a remote server and allows accessing RStudio using a web browser. The RStudio IDE is a product of Posit PBC.

<span class="mw-page-title-main">Wolfram Language</span> Programming language and environment developed by Wolfram Research

The Wolfram Language is a proprietary, general-purpose, very high-level multi-paradigm programming language developed by Wolfram Research. It emphasizes symbolic computation, functional programming, and rule-based programming and can employ arbitrary structures and data. It is the programming language of the mathematical symbolic computation program Mathematica.

<span class="mw-page-title-main">Plotly</span> Canadian computing company

Plotly is a technical computing company headquartered in Montreal, Quebec, that develops online data analytics and visualization tools. Plotly provides online graphing, analytics, and statistics tools for individuals and collaboration, as well as scientific graphing libraries for Python, R, MATLAB, Perl, Julia, Arduino, JavaScript and REST.

The following tables compare notable software frameworks, libraries, and computer programs for deep learning applications.

OpenModelica is a free and open source environment based on the Modelica modeling language for modeling, simulating, optimizing and analyzing complex dynamic systems. This software is actively developed by Open Source Modelica Consortium, a non-profit, non-governmental organization. The Open Source Modelica Consortium is run as a project of RISE SICS East AB in collaboration with Linköping University.

<span class="mw-page-title-main">Project Jupyter</span> Open source data science software

Project Jupyter is a project to develop open-source software, open standards, and services for interactive computing across multiple programming languages.

References

  1. Standage, Daniel (2015-03-13). "Literate programming, RStudio, and IPython Notebook". BioWize. Wordpress. Retrieved 2016-12-01.
  2. Jupyter, Project (20 February 2018). "JupyterLab is Ready for Users" . Retrieved 30 May 2018.
  3. Ramsey, N. (September 1994). "Literate programming simplified". IEEE Software. 11 (5): 97–105. doi:10.1109/52.311070. ISSN   0740-7459. S2CID   18593796.
  4. 1 2 "How to Teach Computational Thinking—Stephen Wolfram". blog.stephenwolfram.com. 7 September 2016. Retrieved 2016-11-23.
  5. "The Jupyter Notebook — Jupyter Notebook 6.2.0 documentation". jupyter-notebook.readthedocs.io. Retrieved 2021-05-03.
  6. Dennis S. Arnon, ed., "Workshop on Environments for Computational Mathematics (July 1987)", Computer Graphics22:1 (February 1988)
  7. Richard J. Fateman, "Computer Systems for the Representation and Manipulation of Mathematical Knowledge", Final report, August 1987 (DTIC AD-A193 547)
  8. Butler W. Lampson, "Personal Distributed Computing: The Alto and Ethernet Software", A history of personal workstations, 1988, ISBN   0201112590, p. 318.
  9. Dennis Arnon, Richard Beach, Kevin McIsaac, "CaminoReal: An Interactive Mathematical Notebook", in J.C. van Vliet, ed., Document Manipulation and Typography, Proceedings of the International Conference on Electronic Publishing, Document Manipulation and Typography, Nice, April 20–22, 1988, ISBN   0521362946, p. 2.
  10. N. Kajler, N. Soiffer, "A Survey of User Interfaces for Computer Algebra Systems", Journal of Symbolic Computation25:2:127-159 (February 1998), doi : 10.1006/jsco.1997.0170
  11. The ReDiscovered Future (2016-04-04), Macintosh + Mathematica = Infinity - April 1989 , retrieved 2016-11-23
  12. Hayes, Brian (1990). "Thoughts on Mathematica" (PDF). PIXEL. January/February 1990: 28–35.
  13. "Launching Wolfram Player for iOS—Wolfram". 16 November 2016. Retrieved 2016-11-23.
  14. "Maple V Release 2 - Maple Help". www.maplesoft.com. Retrieved 2023-01-18.
  15. "Macsyma 2.0", Design News, April 24, 1995
  16. 1 2 3 4 Osipov, Matt (2016-05-04). "The Rise of Data Science Notebooks". Datanami. Tabor Communications. Retrieved 2016-12-20.
  17. 1 2 "The IPython notebook: a historical retrospective". blog.fperez.org. Retrieved 2016-11-23.
  18. Lau, Sam; Drosos, Ian; Markel, Julia M.; Guo, Philip J. (August 2020). "The Design Space of Computational Notebooks: An Analysis of 60 Systems in Academia and Industry". 2020 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). pp. 1–11. doi:10.1109/VL/HCC50065.2020.9127201. ISBN   978-1-7281-6901-9. S2CID   219572399.
  19. Barr, Valerie; Stephenson, Chris (2011). "Bringing computational thinking to K-12: what is involved and what is the role of the computer science education community?".
  20. Databricks (2015-07-06), Spark Summit 2015 demo: Creating an end-to-end machine learning data pipeline with Databricks , retrieved 2016-11-23
  21. Frazier, Cat (2018-04-17). "Announcing Wolfram Presenter Tools" . Retrieved 2018-11-27.
  22. Andrews, Ian (2016-03-30). "Delivering information in context". O'Reilly Media. Retrieved 2016-11-23.
  23. "jupyter-incubator/dashboards". GitHub. Retrieved 2016-11-23.
  24. Sharma, Shad. "Business Intelligence with Mathematica and CDF" . Retrieved 2018-11-27.
  25. "Spark Notebook". Archived from the original on 2018-10-01. Retrieved 2018-09-30.
  26. "Welcome to GNU TeXmacs" . Retrieved 2020-11-28.
  27. Jupyter Development Team (2015-04-22). "Licensing terms". Jupyter Notebook. GitHub. Retrieved 2018-12-20.
  28. "LICENSE". Project Jupyter Contributors. 2018-07-19. Retrieved 2018-12-20.
  29. "R Markdown". R Studio. Retrieved 2018-09-30.
  30. "Licene". Readme. GitHub. 2018-12-07. Retrieved 2018-12-20.
  31. "Databricks Unified Analytics Platform". San Francisco, CA: Databricks Inc. 2018. Retrieved 2018-12-20.
  32. "WolframAlpha Notebook Edition" . Retrieved 2021-01-12.