
Ein Notebook-Interface oder Computational Notebook ist eine virtuelle Notebook- Umgebung für Literate Programming , eine Methode zum Schreiben von Computerprogrammen . [ 1 ] Manche Notebooks sind WYSIWYG- Umgebungen mit ausführbaren Berechnungen, die in formatierte Dokumente eingebettet sind; andere trennen Berechnungen und Text in separate Abschnitte. Notebooks haben einige Gemeinsamkeiten in Zielsetzung und Funktionen mit Tabellenkalkulations- und Textverarbeitungsprogrammen , gehen aber über deren begrenzte Datenmodelle hinaus.
Modulare Notebooks können sich mit einer Vielzahl von Rechen-Backends, sogenannten „Kernels“, verbinden. Notebook-Schnittstellen werden häufig in den Bereichen Statistik , Data Science , maschinelles Lernen und Computeralgebra eingesetzt . [ 2 ]
Im Kern des Notebooks steht die Idee der Literate-Programming-Tools, mit denen man „die Teile eines Programms in beliebiger Reihenfolge anordnen und Dokumentation und Code aus derselben Quelldatei extrahieren kann“ [ 3 ] . Das Notebook hebt diesen Ansatz auf eine neue Ebene, indem es ihn um grafische Funktionen und einen Fokus auf Interaktivität erweitert. Stephen Wolfram erklärt : „Die Idee eines Notebooks ist es, ein interaktives Dokument zu haben, das Code, Ergebnisse, Grafiken, Text und alles andere frei miteinander kombiniert“ [ 4 ]. Die Jupyter-Projektdokumentation beschreibt es so: „Das Notebook erweitert den konsolenbasierten Ansatz des interaktiven Rechnens in eine qualitativ neue Richtung und bietet eine webbasierte Anwendung, die sich eignet, den gesamten Berechnungsprozess abzubilden: Entwicklung, Dokumentation und Ausführung von Code sowie die Kommunikation der Ergebnisse“ [ 5 ] .
Geschichte
VisiCalc , die erste Tabellenkalkulation für Personalcomputer , wurde 1979 veröffentlicht. Ihre Idee der visuellen Berechnungen ist auch heute noch weit verbreitet, beschränkt sich jedoch auf Dokumente, die in eine Tabelle passen .
Die Forschung zu WYSIWYG-Mathematiksystemen, die gemischten Text und Berechnungen mit einer Dokumentenmetapher unterstützen, wurde ab 1987 veröffentlicht: [ 6 ] Ron Avitzurs Milo , [ 7 ] William Schelters INFOR , Xerox PARCs Tioga [ 8 ] und CaminoReal . [ 9 ]
Das erste kommerzielle System, das die Dokumentenmetapher nutzte, war MathCAD , das ebenfalls 1987 erschien. [ 10 ] Wolfram Mathematica 1.0 folgte 1988. [ 11 ] [ 12 ] [ 13 ] Später kamen Maple 5.2 (1992) [ 14 ] und Macsyma 2.0 (1995) [ 15 ] .
Mit zunehmender Beliebtheit der Notebook-Oberfläche in den folgenden zwei Jahrzehnten wurden Notebooks für verschiedene Rechen-Backends („Kernels“) eingeführt, darunter MATLAB , Python , Julia , R , Scala , Elixir , SQL und andere. [ 16 ] [ 17 ]
Die Vielfalt der Notebook-Benutzeroberflächen wurde seither erweitert und es entwickeln sich ständig neue Formen. [ 18 ]
Verwenden
Notebooks werden traditionell in den Naturwissenschaften als elektronische Laborbücher verwendet , um Forschungsmethoden, Daten, Berechnungen und Ergebnisse zu dokumentieren. Sie dokumentieren die angewandte Methodik und erleichtern so die Reproduktion von Ergebnissen und Berechnungen mit unterschiedlichen Datensätzen. [ 16 ] [ 17 ] Im Bildungsbereich bietet die Notebook-Oberfläche eine digitale Lernumgebung, insbesondere für die Vermittlung von Computational Thinking . [ 19 ] [ 4 ] Ihre Fähigkeit, Text und Code zu kombinieren, macht sie im Bildungsbereich einzigartig. Digitale Notebooks werden mitunter für Präsentationen als Alternative zu PowerPoint und anderer Präsentationssoftware eingesetzt, da sie die Ausführung von Code innerhalb der Notebook-Umgebung ermöglichen. [ 20 ] [ 21 ] Aufgrund ihrer Fähigkeit, Daten visuell darzustellen und durch Codeänderungen Daten aus verschiedenen Quellen abzurufen, finden Notebooks auch zunehmend Anwendung in Business-Intelligence-Software . [ 16 ] [ 22 ] [ 23 ] [ 24 ]
Bemerkenswerte Beispiele
Beispiel für Projekte oder Produkte aus Notizbüchern: [ 25 ]
Kostenlose/Open-Source-Notebooks
- Apache Spark Notebook [ 26 ] – Apache-Lizenz 2.0
- GNU TeXmacs (ein Dokumentenprozessor, der auch als Notebook-Oberfläche fungieren kann) – GPLv3 [ 27 ]
- IPython – BSD
- Jupyter Notebook (ehemals IPython ) – Modifizierte BSD-Lizenz (Modell des gemeinsamen Urheberrechts) [ 28 ]
- JupyterLab – Überarbeitete BSD-Lizenz [ 29 ]
- Org-Mode in Emacs (mit dem integrierten Babel-Add-on) – GPL
- R Markdown [ 30 ] – GPLv3 [ 31 ]
- SageMath – GPLv3
Teilweises Copyleft
- Anakonda
- SMath Studio – Freeware, nicht frei verfügbar: lizenziert unter Creative Commons Attribution-No Derivatives
Firmeneigene Notizbücher
- CoCalc
- Google Colab
- Wolfram Mathematica
- Kaggle-Notizbücher
- Mathcad
- MATLAB – Live-Editor seit 2016.
- Databricks Cloud (gegründet 2013). [ 16 ] [ 32 ]
- WolframAlpha Notebooks [ 33 ]
Siehe auch
Referenzen
- ^ Standage, Daniel (13.03.2015). „Literate Programming, RStudio und IPython Notebook“ . BioWize . WordPress . Abgerufen am 01.12.2016 .
- ^ Jupyter, Project (20. Februar 2018). „JupyterLab ist bereit für Benutzer“ . Abgerufen am 30. Mai 2018 .
- ^ Ramsey, N. (September 1994). „Literate Programming vereinfacht“. IEEE Software . 11 (5): 97–105 . doi : 10.1109/52.311070 . ISSN 0740-7459 . S2CID 18593796 .
- ^ a b Wolfram, Stephen (7. September 2016). „How to Teach Computational Thinking—Stephen Wolfram“ . blog.stephenwolfram.com . Abgerufen am 23. November 2016 .
- ^ „Das Jupyter Notebook – Dokumentation zu Jupyter Notebook 6.2.0“ . jupyter-notebook.readthedocs.io . Abgerufen am 3. Mai 2021 .
- ^ Dennis S. Arnon (Hrsg.), „Workshop on Environments for Computational Mathematics (Juli 1987)“, Computer Graphics 22 :1 (Februar 1988)
- ^ Richard J. Fateman, „Computersysteme zur Darstellung und Manipulation mathematischen Wissens“, Abschlussbericht, August 1987 (DTIC AD-A193 547 )
- ^ Butler W. Lampson, „Personal Distributed Computing: The Alto and Ethernet Software“, Eine Geschichte der persönlichen Workstations , 1988, ISBN 0201112590, S. 318.
- ^ Dennis Arnon, Richard Beach, Kevin McIsaac, „CaminoReal: Ein interaktives mathematisches Notizbuch“, in: J. C. van Vliet (Hrsg.), Dokumentenmanipulation und Typografie , Tagungsband der Internationalen Konferenz über elektronisches Publizieren, Dokumentenmanipulation und Typografie, Nizza, 20.–22. April 1988, ISBN 0521362946, S. 2.
- ^ N. Kajler, N. Soiffer, „A Survey of User Interfaces for Computer Algebra Systems“, Journal of Symbolic Computation 25 :2:127-159 (Februar 1998), doi : 10.1006/jsco.1997.0170
- ^ Die wiederentdeckte Zukunft (04.04.2016), Macintosh + Mathematica = Unendlichkeit - April 1989 , abgerufen am 23.11.2016
- ^ Hayes, Brian (1990). „Thoughts on Mathematica“ (PDF) . PIXEL . Januar/Februar 1990: 28–35 .
- ^ „Einführung des Wolfram Players für iOS – Wolfram“ . 16. November 2016. Abgerufen am 23. November 2016 .
- ^ „Maple V Release 2 – Maple-Hilfe“ . www.maplesoft.com . Abgerufen am 18.01.2023 .
- ^ „Macsyma 2.0“, Design News , 24. April 1995
- ^ a b c d Osipov, Matt (2016-05-04). „The Rise of Data Science Notebooks“ . Datanami . Tabor Communications . Abgerufen am 20.12.2016 .
- ^ a b „Das IPython-Notebook: Ein historischer Rückblick“ . blog.fperez.org . Abgerufen am 23.11.2016 .
- Lau , Sam; Drosos, Ian; Markel, Julia M.; Guo, Philip J. (August 2020). „Der Gestaltungsraum von Computational Notebooks: Eine Analyse von 60 Systemen in Wissenschaft und Industrie“. 2020 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) . S. 1–11 . doi : 10.1109/VL/HCC50065.2020.9127201 . ISBN 978-1-7281-6901-9S2CID 219572399 .
- ^ Barr, Valerie; Stephenson, Chris (2011). „Computational Thinking in der Primar- und Sekundarstufe: Was ist damit verbunden und welche Rolle spielt die Informatik-Bildungsgemeinschaft?“
- ^ Databricks (06.07.2015), Spark Summit 2015 Demo: Erstellung einer durchgängigen Machine-Learning-Datenpipeline mit Databricks , abgerufen am 23.11.2016
- ^ Frazier, Cat (17.04.2018). „Ankündigung der Wolfram Presenter Tools“ . Abgerufen am 27.11.2018 .
- ^ Andrews, Ian (30.03.2016). „Informationen im Kontext vermitteln“ . O'Reilly Media . Abgerufen am 23.11.2016 .
- ^ "jupyter-incubator/dashboards" . GitHub . Abgerufen am 23.11.2016 .
- ^ Sharma, Shad. „Business Intelligence mit Mathematica und CDF“ . Abgerufen am 27.11.2018 .
- ^ https://datasciencenotebook.org
- ^ „Spark Notebook“ . Archiviert vom Original am 1. Oktober 2018. Abgerufen am 30. September 2018 .
- ^ „Willkommen bei GNU TeXmacs“ . Abgerufen am 28.11.2020 .
- ^ Jupyter Development Team (22.04.2015). „Lizenzbedingungen“ . Jupyter Notebook . GitHub . Abgerufen am 20.12.2018 .
- ^ "LICENSE" . Project Jupyter Contributors . 19.07.2018 . Abgerufen am 20.12.2018 .
- ^ „R Markdown“ . R Studio . Abgerufen am 30.09.2018 .
- ^ „Lizenz“ . Readme . GitHub. 07.12.2018 . Abgerufen am 20.12.2018 .
- ^ „Databricks Unified Analytics Platform“ . San Francisco, CA: Databricks Inc. 2018. Abgerufen am 20.12.2018 .
- ^ „WolframAlpha Notebook Edition“ . Abgerufen am 12.01.2021 .