8 NOTEBOOKS QUE DEBES CONOCER

En este video, el equipo de Manuel Rubio presenta una revisión cronológica y comparativa de ocho cuadernos computacionales (notebooks) relevantes para programadores, científicos de datos y educadores. Comienzan contextualizando la idea de "programación culta" o literate programming, citando el trabajo seminal de Donald Knuth y la evolución de herramientas de documentación integrada. A continuación, describen cada notebook: 1. Mathematica Notebook – pionero desde 1988, usado en entornos académicos para fórmulas y cálculo simbólico. 2. Jupyter – origen en IPython, expansión a múltiples kernels (Python, Julia, R, C++, SQL, etc.) y su ecosistema (JupyterCon, extensiones). 3. R Markdown – evolución desde WEB/NOWEB, pasando por Swift y NeatIR, integrándose en RStudio para reproducibilidad. 4. Apache Zeppelin – notebook orientado a Big Data, con soporte para Spark, Python, Scala, SQL y conexión a bases de datos. 5. Observable – notebook centrado en visualización web con D3.js, modelo freemium y herramientas de exportación. 6. Polynote – creado por Netflix, combina Scala, Python, Spark y SQL, enfatizando inmutabilidad y reproducibilidad. 7. Starboard Notebook – mezcla de Markdown, LaTeX, HTML, CSS, JavaScript y Python, ejecutado totalmente en el navegador sin backend. 8. Livebook – lanzado en 2021, soporta Elixir, Markdown, Vega, LaTeX y Mermaid, y permite integrar IA mediante Hugging Face. Durante la exposición, los presentadores discuten características clave (multilenguaje, integración con bases de datos, visualización, IA), la importancia de la reproducibilidad y la comunidad (Patreon, conferencias, contribuciones). Finalmente, invitan a la audiencia a probar los notebooks que mejor se adapten a sus necesidades y a apoyar proyectos con bajo mantenimiento.
Chapters
Otro de estos vídeos que propone un número determinado de elementos y en este caso son notebooks. ¿Cuadernos? ¿Qué son los cuadernos?
Pues deberías conocerlos mejor que nadie porque uno de los principales usa Python.
Solo por eso valdrá la pena echarle un vistazo. ¿Qué proyecto es?
Luego entramos en esos detalles. Lo importante son los cuadernos como concepto porque son un recurso muy útil para probar y mostrar código. De hecho, en cursos es un recurso muy interesante porque se pueden proporcionar ejercicios en los que trabajar dentro del propio cuaderno.
¿Estás preparando los ejercicios del curso de programación usando cuadernos?
Todo se andará. Antes de entrar a ver los cuadernos recordemos algo de historia, de la literate programming, algo que podemos traducir como programación alfabeta o programación culta.
Me gusta más la segunda, la primera no se entiende bien.
La segunda tampoco, y lo entenderás cuando profundicemos en el significado.
Pero llamémosla así. ¡Novedades!
Como todos sabéis, podéis haceros historiadores o cronistas del canal y disfrutar de contenido exclusivo, además de apoyarnos.
Totalmente, aunque eso no es ninguna novedad, pro.
La novedad es que a partir de ahora también tenemos Patreon.
Sí, eso sí que es una novedad. Aunque, ¿qué ventaja tendría ser historiador o cronista en Patreon?
Pues además de apoyarnos, el mismo contenido exclusivo se encuentra en Patreon sin publicidad.
Eso podemos decirlo aquí en YouTube.
Y no olvidéis que a través de la página web podéis seguir realizando vuestras votaciones de forma gratuita.
Y la forma óptima de darnos vuestro apoyo siempre es dar al like, suscribiros y compartir el vídeo con todos.
Sigamos con el vídeo.
Programación culta.
Donald Knuth escribió un documento en 1984 con este título donde proponía la provisión de texto en los programas de modo que la compilación separase el texto para humanos y lo compilase en un formato legible como DVI y el código, en este ejemplo en Pascal, fuese a un compilador o intérprete.
En nuestros días es mejor hablar de PDF.
Pero esto que cuentas es lo que ya hacen algunas herramientas en lenguajes actuales como Godoc, o PyDoc, o Javadoc...
¿O de Oxygen?
Sí, esto es ahora, pero la propuesta de Nat en ese momento se basó en el estado de la programación de aquellos años y la inexistencia de este tipo de mecanismos para proporcionar documentación junto con el código. El proyecto web de Nat proponía algo que según el sector se interpretó de formas diferentes.
Pues viendo esto, podemos decir que derivó en las herramientas que hemos mencionado dentro del mundo de la computación y en los cuadernos dentro del mundo científico en general.
Y ya sabemos todos lo poco en uso que suelen estar en el mundo de la computación.
Había que dejar clara esta parte de la historia porque los siguientes cuadernos que veremos, en orden cronológico, se influencian precisamente de estos orígenes. Matemática Notebook.
Este cuaderno es muy famoso en el campo universitario. De hecho, en ciertas asignaturas constituye una herramienta muy necesaria Para facilitar la escritura de fórmulas y ayudar en su resolución.
¡Exacto! De hecho, no nos vamos a detener mucho en esta opción porque ya tenemos un capítulo hablando de Mathemática. Sin embargo, como constituye una gran influencia en la creación de los diferentes cuadernos que veremos, pues lo mencionamos al menos.
Debemos tener presente que el notebook siempre estuvo ahí desde la versión de 1988 de Mathemática. Ha habido competidores, Pero pocos pueden atribuirse el récord de estar más de 30 años en el mercado y no ser considerados ni antiguos ni desfasados.
Un buen trabajo de actualización constante y prestación de nuevas características.
Jupyter.
Este lo conozco, ahora sí.
No me extraña, es uno de los más populares y también fuente de inspiración de muchos otros, aunque no tanto como Matemática.
Jupyter empezó como un spin-off de IPython.
¿Esa I? Al inicio suena como productos Apple como iPod, iPhone, iPad e incluso le sigue una P. Es mucha casualidad, ¿no?
Pues no, es porque es un Python interactivo. Inicias la shell y te pregunta una expresión de entrada, a lo que responde con un resultado de salida. Pero Jupyter aspiraba a más. Fernando Pérez, uno de los autores de IPython y quien comenzó el proyecto Jupyter, quiso llevarlo a una interfaz gráfica.
De hecho, tal y como dijo Fernando en una conferencia cuando Jupyter cumplió 20 años... ¡Bro!
¡No!
El título de la conferencia es 20 años de IPython y Jupyter, pero Jupyter, según parece, fue lanzado en 2014. La conferencia celebra 20 años de IPython, que fue lanzado en 2001. ¡Ups!
Gracias, Violeta. Bueno, es verdad que desde IPython han surgido otros proyectos interesantes hasta confluir en Jupyter, por ejemplo IPython Notebook de 2011.
Nos podríamos haber quedado ahí, pero Jupyter es mucho más. El proyecto contó inicialmente con IPython como kernel de Python y el sistema Jupyter para conectar diferentes kernels.
¿Diferentes kernels? ¿Puedes utilizar otros lenguajes de programación?
¡Totalmente! De hecho, Jupyter se eligió como nombre porque viene de Julia, Python y R.
Creo que estoy con chip. Únicamente con Python habría sido suficiente.
¡No te desanimes! Inicialmente estaban disponibles estos kernels de Python, Julia y R, pero también hay implementaciones de otros lenguajes de programación como C++, SQL, Haskell, JavaScript o Lua, entre otros.
Parece que el ecosistema de Jupyter ha sido muy prolífico.
De hecho, tienen una conferencia propia llamada JupyterCon que se celebra desde 2017. La última hasta la fecha fue en noviembre de 2025 en San Diego, California.
Como nota curiosa, el logotipo se diseñó con un manuscrito que se atribuye incorrectamente a Galileo Galilei sobre Júpiter y sus lunas.
Pasemos al siguiente: R Markdown. El camino de R Markdown tampoco fue una línea recta. Tras ser influenciados por el documento de Nat y usar WEB, algunos investigadores sintieron ese sistema con mucha capacidad de mejora.
Vamos, que les pareció una mierda.
¡Chip!
No, les pareció simplemente un poco simple y requerían de mejores características.
En 1989, Norman Ramsey rediseñó WEB llamándolo NOWEB para ser simple, fácil de extender e independiente del lenguaje de programación.
Esto quiere decir que Web dependía de TeX para la escritura de documentación y Pascal para la escritura de código.
¿Ves cómo era una pieza de código con una gran necesidad de mejoras?
No obstante, los usuarios del lenguaje R no notaban una integración limpia entre TeX y su lenguaje de programación, y en 2002 Friedrich Leisch presentó Swift.
¿Mejor que NoWeb?
En verdad no, simplemente diferente. De hecho, Swift solo puede utilizarse con el lenguaje de programación R.
La clave de estos sistemas y la que podréis ver en muchos de ellos es hacer la investigación más transparente y reproducible para otros.
No obstante, Swift fue tan solo otro proyecto más en el camino. El siguiente fue NeatIR, que tenía la integración para el uso de los formatos LaTeX, LIX, HTML, Markdown, AsciiDoc y reStructuredText.
NeatIR llegó en 2012 inspirado por Swift pero con un diseño diferente para permitir una mejor modularización y así ser fácil de mantener y extender. Más tarde, en 2014, se incluyó dentro del editor RStudio donde se indica a R Markdown como un formato.
Muy bonita historia. ¿Pasamos a la siguiente? Apache Zeppelin. Entramos dentro de la categoría de Big Data. Este proyecto que se gestó en 2013 Vio la luz en 2014 y en 2016 llegó a ser un proyecto de alto nivel dentro de la Fundación Apache.
¿Qué podemos hacer con Zeppelin?
Pues este cuaderno nos permite conectarnos a una base de datos y, a través del uso de Spark y lenguajes como Python, Scala y SQL, obtener resultados en forma de tablas y gráficas.
Parece que también soporta el lenguaje R según su página web.
Nada es perfecto.
Es un cuaderno perfecto si te dedicas a obtener información de bases de datos y quieres tener la flexibilidad de un cuaderno y el acceso a todos los datos de forma fácil a través de SQL y otros lenguajes de programación.
Y te permite conectarte a varias bases de datos, por lo que puedes hacer mezclas y cruces de datos a muchos niveles.
Sigamos, que esta la quiero decir yo. Observable Notebook. Aunque bibliotecas como D3.js fueron desarrolladas no solo por Mike Bostock, sino por otras 2 personas más, siempre se atribuye a Bostock su creación.
Fue el origen. A través de su tesis doctoral hizo Protobees en Stanford. Bostock y sus amigos, ante algunas dificultades que vieron en Protobees, decidieron hacer algo mejor y de ahí surgió D3.
¿Y cómo llegamos de D3 a este cuaderno?
En verdad llegamos ahí porque Bostock decidió junto con sus amigos en 2015 dedicarse a este y a otros proyectos. Lanzaron su compañía en 2020 siendo un gran éxito.
Aunque no podemos poner una fecha, hay cuadernos creados de 2020, ya que se pueden publicar cuadernos en su página web. Eso sí, con un modelo freemium.
Es entonces como Matemática, un servicio y nada de software libre.
Para nada. Este notebook tiene un formato específico y aunque es verdad que el editor y lo interesante está en su página web, en su GitHub te puedes hacer con una herramienta de consola para descargar tus ficheros del editor y ponerlos en formato HTML en tu propia web.
No es lo que esperaba, pero ha sido una bonita historia de startup que consigue, a través de la visualización de datos, hacerse un hueco en el mercado.
Totalmente. Vayamos ahora al siguiente, que os va a impactar. Polynote. Este cuaderno fue anunciado y lanzado por Netflix en 2019 como un notebook que tiene soporte para Scala, Python, con y sin Spark, SQL y Vega para la visualización de datos.
Vega me suena, ¿qué es?
Es una biblioteca muy conocida de visualización de gráficos de todo tipo.
Lo que hace interesante a Polynote es su enfoque de Scala y Spark como ciudadanos de primera clase.
Esto tiene que ver con la programación funcional, ¿no?
¡Inmutabilidad, chip! La idea principal es tener un cuaderno reproducible de análisis de datos obtenidos mediante Spark, SQL y algún otro lenguaje de programación si fuese necesario.
Si queréis probarlo podéis ir a su página web y presionar el botón de Try It.
Ya vamos acabando, pero este siguiente no me suena de nada. Veamos, Starboard Notebook.
Pues es otro cuaderno que soporta una mezcla de Markdown, LaTeX, HTML, CSS, JavaScript y Python según su página web.
Pero tiene algo muy llamativo, esa frase: no hay código aquí ejecutándose en el backend.
Eso quiere decir que podemos bajar el proyecto a nuestro computador y cargarlo en el navegador y hacer lo que necesitemos.
Totalmente. Aunque el proyecto ha sido creado por una única persona y parece que no esté muy activo en el desarrollo en estos momentos, no obstante, es un proyecto interesante de cuaderno para poder incrustarlo en nuestras páginas web.
No sé si es buena idea proponer algo con un bajo mantenimiento. Pero ahí queda, y si alguien es realmente diestro con JavaScript quizás pueda apoyar el proyecto.
Vamos a por el último, pero no por ello el menos importante: Livebook. Como dije, vamos en orden cronológico y por ese motivo Livebook ha sido el último. Este fue presentado en 2021.
Tiene tan solo 5 años de vida, pero no ha parado. En su página web Se puede ver que tiene soporte para escribir bloques usando Markdown o Elixir, también bloques específicos con las gráficas Vega, fórmulas con LaTeX y diagramas con Mermaid.
Y al igual que los otros, enfatiza la reproducibilidad.
Como Elixir también ha avanzado tanto, este proyecto no solo se puede utilizar desde una interfaz web, sino también desde una aplicación de escritorio.
También cabe reseñar que estos cuadernos no solo permiten conectarse con bases de datos, sino que también tienen integraciones, y quizás lo más llamativo, es poder agregar elementos de inteligencia artificial a nuestros proyectos.
Sí, gracias al proyecto Hugging Face, que dispone de muchos tipos diferentes de IAs. Podemos ver que, por ejemplo, Livebook dispone de bloques en esta integración para convertir texto en imágenes, clasificar imágenes o textos, entre otras muchas funciones.
Pues ya estaría, ¿no? Conclusiones. Hemos visto en qué consisten los cuadernos y algunos ejemplos usables de cuadernos para todos los gustos. Creo que comenzaré a usar Jupyter, es ideal para escribir algunas pruebas de concepto.
También para hacer algunos bancos de pruebas y medir si un código es óptimo, Chip.
A mí me ha gustado la idea de Apache Zeppelin y merece la pena probarlo para el análisis de datos.
Yo no sabría con cuál quedarme, está claro que depende del entorno y lenguaje usado. Hay algunos que permiten usar diferentes lenguajes de programación y eso me gusta. Habrá que ir probándolos en escenarios reales.
Ahora os toca a vosotros, que sé que habéis estado escuchando y pensando cuál puede ser mejor para vosotros. Obviamente depende del lenguaje de programación que queráis usar, pero también del enfoque. ¿Cuál os ha parecido mejor o qué estaríais dispuestos a probar?
¿Apoyaríais a Starboard Notebook para ayudarle a crecer?
¿Qué os ha parecido que Netflix tenga su propio notebook y que use el Scala?
¡Déjanos tu comentario!
Oye, pro, ¿de verdad no has tomado ideas de estos cuadernos para hacer los ejercicios del curso?
Es difícil de encajar cada uno de los 4 lenguajes en los cuadernos. Es decir, podría basarme en dejarte usar un cuaderno como Jupyter para la explicación y ejercicios de tu parte del curso Pero eso nos serviría para Hexa con CIG o Violeta con Go.
O contigo y Pascal. Pero, ¿de verdad son necesarios 4 lenguajes en el curso?
No es necesidad, pero sí riqueza demostrativa. El curso debe enseñar a programar y moldear la mente del programador. Eso no se consigue nunca con un solo lenguaje de programación.
Yo creo que con Python se conseguiría. Pero lo más importante, ¿cuándo lo lanzamos?
Ya queda menos, ya queda menos. Continuará.
More from Manuel

Historia de los Lenguajes de Programación: años 1960-1969 #basic #apl #simula #lisp #logo

¿Compilador o intérprete? La historia de una rivalidad que comenzó en los años 40








