Herramienta de programación que combina código y documentos
Una interfaz de notebook o notebook computacional es un entorno de notebook virtual utilizado para programación alfabetizada , un método de escritura de programas informáticos . [1] Algunos notebooks son entornos WYSIWYG que incluyen cálculos ejecutables integrados en documentos formateados; otros separan los cálculos y el texto en secciones independientes. Los notebooks comparten algunos objetivos y características con las hojas de cálculo y los procesadores de texto , pero van más allá de sus limitados modelos de datos.
En el núcleo de Notebook está la idea de herramientas de programación alfabetizadas que "permiten organizar las partes de un programa en cualquier orden y extraer documentación y código del mismo archivo fuente". [3] Notebook lleva este enfoque a un nuevo nivel ampliándolo con alguna funcionalidad gráfica y un enfoque en la interactividad . Según Stephen Wolfram : "La idea de un notebook es tener un documento interactivo que mezcle libremente código, resultados, gráficos, texto y todo lo demás". [4] Y según la Documentación del Proyecto Jupyter: "El notebook extiende el enfoque basado en consola a la computación interactiva en una dirección cualitativamente nueva, proporcionando una aplicación basada en web adecuada para capturar todo el proceso de computación: desarrollar, documentar y ejecutar código, así como comunicar los resultados. El notebook Jupyter combina dos componentes". [5]
Historia
VisiCalc , la primera hoja de cálculo para computadoras personales , se publicó en 1979. Su idea de cálculos visuales todavía se usa ampliamente hoy en día, pero está limitada a documentos que caben en una tabla .
Las investigaciones sobre sistemas matemáticos WYSIWYG que admiten texto mixto y cálculos con una metáfora de documento comienzan a publicarse en 1987: [6] Milo de Ron Avitzur , [7] INFOR de William Schelter , Tioga de Xerox PARC [8] y CaminoReal . [9]
El primer sistema comercial que utilizó la metáfora del documento fue MathCAD , que también salió al mercado en 1987. [10] Wolfram Mathematica 1.0 le siguió en 1988. [11] [12] [13] Más tarde llegaron Maple 5.2 (1992) [14] y Macsyma 2.0 (1995). [15]
A medida que la interfaz del cuaderno aumentó en popularidad durante las siguientes dos décadas, se introdujeron cuadernos para varios back ends computacionales ("kernels"), incluidos MATLAB , Python , Julia , R , Scala , Elixir , SQL y otros. [16] [17]
Desde entonces, la variedad de interfaces de portátiles se ha ampliado y siguen evolucionando nuevas formas. [18]
Usar
Los cuadernos se utilizan tradicionalmente en las ciencias como cuadernos electrónicos de laboratorio para documentar procedimientos de investigación, datos, cálculos y hallazgos. Los cuadernos rastrean la metodología para facilitar la reproducción de resultados y cálculos con diferentes conjuntos de datos. [16] [17] En educación , la interfaz del cuaderno proporciona un entorno de aprendizaje digital, particularmente para la enseñanza del pensamiento computacional . [19] [4] Su utilidad para combinar texto con código los hace únicos en el ámbito de la educación. Los cuadernos digitales a veces se utilizan para presentaciones como una alternativa a PowerPoint y otro software de presentación, ya que permiten la ejecución de código dentro del entorno del cuaderno. [20] [21] Debido a su capacidad para mostrar datos visualmente y recuperar datos de diferentes fuentes modificando el código, los cuadernos también están ingresando al ámbito del software de inteligencia empresarial . [16] [22] [23] [24]
^ Standage, Daniel (13 de marzo de 2015). "Programación literaria, RStudio y IPython Notebook". BioWize . Wordpress . Consultado el 1 de diciembre de 2016 .
^ Jupyter, Proyecto (20 de febrero de 2018). «JupyterLab está listo para los usuarios» . Consultado el 30 de mayo de 2018 .
^ Ramsey, N. (septiembre de 1994). "Literate programming simplify" (Programación literaria simplificada). IEEE Software . 11 (5): 97–105. doi :10.1109/52.311070. ISSN 0740-7459. S2CID 18593796.
^ ab "Cómo enseñar pensamiento computacional: Stephen Wolfram". blog.stephenwolfram.com . 7 de septiembre de 2016 . Consultado el 23 de noviembre de 2016 .
^ "Jupyter Notebook — Documentación de Jupyter Notebook 6.2.0". jupyter-notebook.readthedocs.io . Consultado el 3 de mayo de 2021 .
^ Dennis S. Arnon, ed., "Taller sobre entornos para matemáticas computacionales (julio de 1987)", Computer Graphics 22 :1 (febrero de 1988)
^ Richard J. Fateman, "Sistemas informáticos para la representación y manipulación del conocimiento matemático", Informe final, agosto de 1987 (DTIC AD-A193 547)
^ Butler W. Lampson, "Computación personal distribuida: el software Alto y Ethernet", Una historia de las estaciones de trabajo personales , 1988, ISBN 0201112590 , pág. 318.
^ Dennis Arnon, Richard Beach, Kevin McIsaac, "CaminoReal: Un cuaderno matemático interactivo", en JC van Vliet, ed., Document Manipulation and Typography , Actas de la Conferencia internacional sobre publicación electrónica, manipulación de documentos y tipografía, Niza, 20-22 de abril de 1988, ISBN 0521362946 , pág. 2.
^ N. Kajler, N. Soiffer, "Un estudio de las interfaces de usuario para sistemas de álgebra computacional", Journal of Symbolic Computation 25 :2:127-159 (febrero de 1998), doi :10.1006/jsco.1997.0170
^ El futuro redescubierto (4 de abril de 2016), Macintosh + Mathematica = Infinito - abril de 1989 , consultado el 23 de noviembre de 2016
^ Hayes, Brian (1990). "Reflexiones sobre Mathematica" (PDF) . PIXEL . Enero/febrero de 1990: 28–35.
^ "Lanzamiento de Wolfram Player para iOS—Wolfram". 16 de noviembre de 2016. Consultado el 23 de noviembre de 2016 .
^ "Maple V Release 2 - Ayuda de Maple". www.maplesoft.com . Consultado el 18 de enero de 2023 .
^ "Macsyma 2.0", Design News , 24 de abril de 1995
^ abcd Osipov, Matt (4 de mayo de 2016). "El auge de los cuadernos de ciencia de datos". Datanami . Comunicaciones Tabor . Consultado el 20 de diciembre de 2016 .
^ ab "El cuaderno IPython: una retrospectiva histórica". blog.fperez.org . Consultado el 23 de noviembre de 2016 .
^ Lau, Sam; Drosos, Ian; Markel, Julia M.; Guo, Philip J. (agosto de 2020). "El espacio de diseño de los cuadernos computacionales: un análisis de 60 sistemas en la academia y la industria". Simposio IEEE 2020 sobre lenguajes visuales y computación centrada en el ser humano (VL/HCC) . págs. 1–11. doi :10.1109/VL/HCC50065.2020.9127201. ISBN978-1-7281-6901-9.S2CID219572399 .
^ Barr, Valerie; Stephenson, Chris (2011). "Llevar el pensamiento computacional a la educación primaria y secundaria: ¿qué implica y cuál es el papel de la comunidad educativa en ciencias de la computación?".
^ Databricks (6 de julio de 2015), Demostración de Spark Summit 2015: Creación de una canalización de datos de aprendizaje automático de extremo a extremo con Databricks , consultado el 23 de noviembre de 2016
^ Frazier, Cat (17 de abril de 2018). "Anuncio de Wolfram Presenter Tools" . Consultado el 27 de noviembre de 2018 .
^ Andrews, Ian (30 de marzo de 2016). "Entrega de información en contexto". O'Reilly Media . Consultado el 23 de noviembre de 2016 .
^ "jupyter-incubator/dashboards". GitHub . Consultado el 23 de noviembre de 2016 .
^ Sharma, Shad. "Business Intelligence con Mathematica y CDF" . Consultado el 27 de noviembre de 2018 .
^ "Zeppelin". Apache . Consultado el 20 de diciembre de 2018 .
^ "Cuaderno Spark". Archivado desde el original el 1 de octubre de 2018. Consultado el 30 de septiembre de 2018 .
^ "Bienvenido a GNU TeXmacs" . Consultado el 28 de noviembre de 2020 .
^ Equipo de desarrollo de Jupyter (22 de abril de 2015). «Términos de licencia». Jupyter Notebook . GitHub . Consultado el 20 de diciembre de 2018 .
^ "LICENCIA". Colaboradores del proyecto Jupyter . 19 de julio de 2018. Consultado el 20 de diciembre de 2018 .
^ https://livebook.dev/
^ "Yoduro". GitHub . Consultado el 20 de diciembre de 2018 .
^ https://polynote.org/
^ https://quarto.org/
^ "R Markdown". R Studio . Consultado el 30 de septiembre de 2018 .