HOME

TheInfoList



OR:

A notebook interface (also called a computational notebook) is a virtual
notebook A notebook (also known as a notepad, writing pad, drawing pad, or legal pad) is a book or stack of paper pages that are often ruled and used for purposes such as note-taking, journaling or other writing, drawing, or scrapbooking. History ...
environment used for
literate programming Literate programming is a programming paradigm introduced in 1984 by Donald Knuth in which a computer program is given as an explanation of its logic in a natural language, such as English, interspersed (embedded) with snippets of macros an ...
, a method of writing computer programs. Some notebooks are
WYSIWYG In computing, WYSIWYG ( ), an acronym for What You See Is What You Get, is a system in which editing software allows content to be edited in a form that resembles its appearance when printed or displayed as a finished product, such as a printed d ...
environments including executable calculations embedded in formatted documents; others separate calculations and text into separate sections. Modular notebooks may connect to a variety of computational back ends, called "kernels". Notebook interfaces are widely used for
statistics Statistics (from German: '' Statistik'', "description of a state, a country") is the discipline that concerns the collection, organization, analysis, interpretation, and presentation of data. In applying statistics to a scientific, indust ...
,
data science Data science is an interdisciplinary field that uses scientific methods, processes, algorithms and systems to extract or extrapolate knowledge and insights from noisy, structured and unstructured data, and apply knowledge from data across a br ...
,
machine learning Machine learning (ML) is a field of inquiry devoted to understanding and building methods that 'learn', that is, methods that leverage data to improve performance on some set of tasks. It is seen as a part of artificial intelligence. Machine ...
, and
computer algebra In mathematics and computer science, computer algebra, also called symbolic computation or algebraic computation, is a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expressions ...
. 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.", 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.", 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".


History

Research on WYSIWYG mathematical systems supporting mixed text and calculations with a document metaphor begin to be published in 1987: Ron Avitzur's ''Milo'', William Schelter's ''INFOR'',
Xerox PARC PARC (Palo Alto Research Center; formerly Xerox PARC) is a research and development company in Palo Alto, California. Founded in 1969 by Jacob E. "Jack" Goldman, chief scientist of Xerox Corporation, the company was originally a division of Xero ...
's ''Tioga'' and ''CaminoReal''. The earliest commercial system using the document metaphor was ''
MathCAD 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 introduc ...
'', which also came out in 1987. '' Wolfram Mathematica'' 1.0 followed soon afterwards (1988). Later came ''
Maple ''Acer'' () is a genus of trees and shrubs commonly known as maples. The genus is placed in the family Sapindaceae.Stevens, P. F. (2001 onwards). Angiosperm Phylogeny Website. Version 9, June 2008 nd more or less continuously updated since h ...
'' 5.2 (1992) and '' Macsyma 2.0'' (1995). As the notebook interface increased in popularity over the next two decades, notebooks for various computational back ends ("kernels") have been introduced, including
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementat ...
, Python, Julia, Scala, SQL, and others.


Use

Notebooks are traditionally used in the sciences as
electronic lab notebook An electronic lab notebook (also known as electronic laboratory notebook, or ELN) is a computer program designed to replace paper laboratory notebooks. Lab notebooks in general are used by scientists, engineers, and technicians to document resear ...
s to document research procedures, data, calculations, and findings. Notebooks track methodology to make it easier to reproduce results and calculations with different data sets. In
education Education is a purposeful activity directed at achieving certain aims, such as transmitting knowledge or fostering skills and character traits. These aims may include the development of understanding, rationality, kindness, and honesty ...
, the notebook interface provides a digital learning environment, particularly for the teaching of
computational thinking Computational thinking (CT) is the mental skill to apply concepts, methods, problem solving techniques, and logic reasoning, derived from computing and computer science, to solve problems in all areas, including our daily lives. In education, CT ...
. 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 Microsoft PowerPoint is a presentation program, created by Robert Gaskins and Dennis Austin at a software company named Forethought, Inc. It was released on April 20, 1987, initially for Macintosh computers only. Microsoft acquired Powe ...
and other presentation software, as they allow for the execution of code inside the notebook environment. 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 Business intelligence software is a type of application software designed to retrieve, analyze, transform and report data for business intelligence. The applications generally read data that has been previously stored, often - though not necessaril ...
.


Notable examples

Example of projects or products of notebooks:


Free/open-source notebooks

* Apache Zeppelin — Apache License 2.0 *
Apache Spark Apache Spark is an open-source unified analytics engine for large-scale data processing. Spark provides an interface for programming clusters with implicit data parallelism and fault tolerance. Originally developed at the University of Califor ...
Notebook — Apache License 2.0 *
IPython IPython (Interactive Python) 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 h ...
BSD *
Jupyter Notebook Project Jupyter () is a project with goals to develop open-source software, open standards, and services for interactive computing across multiple programming languages. It was spun off from IPython in 2014 by Fernando Pérez and Brian Granger ...
(formerly
IPython IPython (Interactive Python) 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 h ...
) — Modified BSD License (shared copyright model)
Google Colaboratory
— No setup Jupyter notebook environment —
Free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, n ...

Amazon SageMaker
--- ML Focused Jupyter notebook environment --- Free Basic Access

- jupyter notebook interface/frontend notebooks for Jetbrains IDEs, this is a premium feature but source code can be foun
here

VSCode Notebook Support
- jupyter notebook interface/frontend an
API
for VSCode * JupyterLab — Revised BSD License
Starboard
- A shareable In-browser literal notebook, source code can be foun
here
* Mozilla Iodide — MPL 2.0; development in alpha stage
R Markdown
— GPLv3; source code can be foun
here
* SageMath
GPLv3 The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general u ...
* Org-mode on emacs (with the built-in babel addon) — GPL
Xamarin Workbooks
for DotNet — MIT
Polynote
Apache License 2.0 * GNU TeXmacs (a document processor which can act as notebook interface as well) — GPLv3 *Javalí Notebooks: Java based notebooks environment and LMS with debugging and unit test support, designed for the academy, a presentation video can be foun
here
,


Partial copyleft

* SMath Studio — Freeware, not libre: licensed under Creative Commons Attribution-No Derivatives


Proprietary notebooks

* Wolfram Mathematica *
Mathcad 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 introduc ...
*
Matlab MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementat ...
— Live Editor since 2016. * Noteable * Noteable * Deepnote * Carbide * Databricks cloud (founded 2013). * Datalore * Nextjournal * Observable — Uses open-source components, but the look and feel are proprietary *
WolframAlpha WolframAlpha ( ) is an answer engine developed by Wolfram Research. It answers factual queries by computing answers from externally sourced data. WolframAlpha was released on May 18, 2009 and is based on Wolfram's earlier product Wolfram Mathe ...
Notebooks


References

{{Reflist Graphical user interfaces Literate programming Technical communication tools