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, 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,
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 bro ...
,
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 expression ...
. 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 Across the many fields concerned with interactivity, including information science, computer science, human-computer interaction, communication, and industrial design, there is little agreement over the meaning of the term "interactivity", but ...
. 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'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 introduce ...
'', 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 ht ...
'' 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, implementa ...
, 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 r ...
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. 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. 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.


Notable examples

Example of projects or products of notebooks:


Free/open-source notebooks

* Apache Zeppelin — Apache License 2.0 * Apache Spark Notebook — Apache License 2.0 * IPythonBSD * Jupyter Notebook (formerly IPython) — 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, ...

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 BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...

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 SageMath (previously Sage or SAGE, "System for Algebra and Geometry Experimentation") is a computer algebra system (CAS) with features covering many aspects of mathematics, including algebra, combinatorics, graph theory, numerical analysis, nu ...
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 GNU TeXmacs is a scientific word processor and typesetting component of the GNU Project. It originated as GNU Emacs with TeX functionalities, though it shares no code with those programs, while using TeX fonts. It is written and maintained by ...
(a document processor which can act as notebook interface as well) — GPLv3 *JavalĂ­ Notebooks: Java based notebooks environment and
LMS LMS may refer to: Science and technology * Labeled magnitude scale, a scaling technique * Learning management system, education software * Least mean squares filter, producing least mean square error * Leiomyosarcoma, a rare form of cancer * Lenz ...
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 introduce ...
*
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, implementa ...
— 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 Notebooks


References

{{Reflist Graphical user interfaces Literate programming Technical communication tools