Quarto: más que RMarkdown 2.0

Programación literaria
Quarto
R
Python
Autor/a

Daniel E. de la Rosa

Fecha de publicación

31 de agosto de 2022

Hace ya más de una década desde que un equipo interno de RStudio1 presentara Knitr, una nueva implementación de la Programación literaria en R, y RMarkdown, un sistema y formato de documentos que permite la integración de código en documentos de texto plano.

El éxito de Knitr fue tal que en poco tiempo prácticamente reemplazó a Sweave, el sistema de programación literaria que se utilizaba para la generación de la documentación de los paquetes de R, mejor conocidos como viñetas.

Aún más, el crecimiento del sistema fue tal que en los más de 10 años de desarrollo, este ha agregado soporte para poco más de 60 lenguajes de programación, incluyendo Python, Julia, SQL y muchos más. Del mismo modo, RMarkdown ha evolucionado y derivado en un conjunto de herramientas que permiten la creación de libros, presentaciones, sitios web, y mucho más.

Todo esto llevó a que RMarkdown se convertiera en uno de los productos estrella de RStudio.

Sin embargo, con el paso de los años, la compañía que había nacido puramente como una empresa de software para R, comenzó a expandir sus horizontes y a desarrollar herramientas para otros lenguajes de programación.

Para ese entonces Python ya se había convertido en uno de los lenguajes de programación más populares del mundo, y prácticamente el lenguaje de facto para los científicos de datos. Al tiempo que Julia, un lenguaje de programación relativamente nuevo, también comenzaba a ganar popularidad entre los usuarios de R. Por lo que no era de extrañar que RStudio mostrara interés en estos lenguajes.

De hecho, en 2015 había sido publicado el proyecto Jupyter, un sistema que permitía la creación de documentos interactivos que combinaban texto, código y visualizaciones, es decir, una implementación de la programación literaria. Pero, que era particularmente popular entre los usuarios de Python y Julia. Aunque este también tenía soporte para R. De ahí el nombre de Jupyter, que es una abreviación de Julia, Python y R.

Así estaban las cosas: RMarkdown en una esquina y Jupyter Notebook en la otra.

Pero RStudio ya venía tomando medidas. Poco a poco la compañía fue ampliando sus horizontes y desarrollando herramientas para otros lenguajes de programación, hasta el punto que en 2022 la compañía incluso realiza un rebranding y pasa a llamarse Posit, intentando así dejar atrás su pasado como una empresa de software para R, cosa que se veía reflejado en el propio nombre de la compañía.

Una de las primeras apuestas de Posit fue el desarrollo de Quarto, un sistema que permite la creación de documentos interactivos que combinan texto, código y visualizaciones, es decir, otra implementación de la programación literaria. Pero, que prometía ser mucho más que eso, y en definitiva lo es.

Quarto toma lo mejor de más de 10 años de RMarkdown y Jupyter Notebook, y lo integra en un solo sistema, que además es multiplataforma y compatible con una gran cantidad de lenguajes de programación, entre los que destacan R, Python, Julia y JavaScript.

Mientras que RMarkdown depende de R para correr código Python, Jupyter NB depende de Python para correr código R. Sin embargo, Quarto elimina esta dependencia cruzada entre los dos lenguajes, aún cuando te sigue permitiendo utilizar ambos dentro de un mismo proyecto.

Otra ventaja para unos –o desventaja para otros– de Quarto es que además de combinar las funcionalidades de todos los paquetes del ecosistema RMarkdown en un solo sistema, este agrega funcionalidades extras, como una mayor integración con el sistema de filtros de PANDOC, lo que abre un abanico enorme de posibilidades para la personalización de los documentos creados con la herramienta.

También, el propio Posit desarrolló una extensión del popular editor de texto Visual Studio Code, llamada Quarto for VS Code, que permite la edición de documentos Quarto directamente desde el editor de texto, y que además incluye un sistema de autocompletado para los lenguajes de programación soportados por Quarto, eliminando así la dependencia de RStudio IDE.

Por supuesto no todo es color de rosa. Como ya hemos mencionada varias veces, Quarto es un sistema relativamente nuevo, por lo que aún no cuenta con la misma cantidad de documentación y recursos que RMarkdown y Jupyter NB. La comunidad de Quarto está creciendo rápidamente, y cada vez hay más recursos disponibles para aprender a utilizar la herramienta. Sin embargo, muchos de los proyectos más populares basados en RMarkdown y Jupyter NB son mantenidos por la comunidad, por lo que no hay garantías de que los mismos migren a Quarto, o por lo menos no en un futuro cercano.

Habría que esperar un poco más para ver si Quarto se convierte en el nuevo estándar de la programación literaria, o si por el contrario, RMarkdown y Jupyter NB siguen siendo los reyes del juego.

Heil RMarkdown

Hay poco que Posit pueda hacer del lado de Jupyter y en cierta forma el futuro de este dependerá de la acogida que tenga Quarto entre los usuarios de Python y Julia, principalmente.

Sin embargo, tal como mencionara el propio @xie2022Quarto:cb26, autor principal de RMarkdwon y Knitr, RMarkdown relentizará su desarrollo, pero no dejará de terner soporte, ya que de hecho la mayoría de los documentos rmd pueden ser ejecutados por Quarto sin necesidad del más mínimo cambio.

Aunque pudiéramos seguir hablando de la programación literaria, Quarto y como este se compara con RMarkdown y Jupyter NB, la verdad es que lo ideal sería probar cada uno de ellos para ver cual se adapta mejor a las necesidades del proyecto.

Referencias

Notas

  1. Actualmente Posit↩︎

Reutilización

Cómo citar

BibTeX
@online{e. de la rosa2022,
  author = {E. de la Rosa, Daniel},
  title = {Quarto: más que RMarkdown 2.0},
  date = {2022-08-31},
  url = {https://adatar.do/blog/programacion-literaria/quarto-mas-que-rmarkdown-2.0.html},
  langid = {es}
}
Por favor, cita este trabajo como:
E. de la Rosa, Daniel. 2022. “Quarto: más que RMarkdown 2.0.” August 31, 2022. https://adatar.do/blog/programacion-literaria/quarto-mas-que-rmarkdown-2.0.html.