>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Seguridad
Python

Marimo: cuando tu notebook de Python se vuelve verdaderamente reactivo y compatible con Git

21.608 estrellas

¡Hola, compañeros desarrolladores! ¿Alguna vez has abierto tu Jupyter Notebook solo para encontrarte con el caos? Celdas ejecutadas en orden arbitrario, "estado oculto" que rompe tu lógica y un dolor de cabeza cuando intentas subirlo a Git. Desafortunadamente, esto es demasiado común en mi práctica. Amamos los notebooks por su interactividad y la capacidad de experimentar rápidamente, pero a menudo se convierten en una fuente de problemas de reproducibilidad y versionado.

¿Y si existiera un notebook de Python que rastreara automáticamente las dependencias, garantizara un estado limpio y guardara en un archivo regular .py? Suena como un sueño, ¿verdad? Bueno, conoce marimo — un proyecto que promete resolver estos problemas de larga data y llevar el trabajo con notebooks de Python a un nivel completamente nuevo.

Logo de Marimo

¿Qué es marimo y para quién es?

marimo es un notebook de Python reactivo diseñado para hacer que tu trabajo con datos, prototipado y construcción de aplicaciones interactivas sea lo más eficiente y sin dolor posible. Olvídate del comportamiento impredecible de las celdas: marimo rastrea automáticamente las dependencias entre celdas y vuelve a ejecutar solo aquellas que realmente han cambiado. Es como si tu notebook mantuviera constantemente un estado actualizado, como un DAG (grafo acíclico dirigido) bien diseñado.

¿Quién se beneficiaría de esto? En primer lugar, los científicos de datos e ingenieros de ML para quienes la reproducibilidad de los experimentos es crítica. Analistas que crean dashboards interactivos. Desarrolladores que quieren prototipar rápidamente y compartir resultados como aplicaciones web completas. Y por supuesto, cualquiera que esté cansado de la "magia" de Jupyter y busque un entorno más predecible y controlado.

Características clave que cambian el juego

Marimo no solo replantea el concepto de notebook — ofrece todo un conjunto de características que lo convierten en una herramienta poderosa.

1. Reactividad en acción: ¡adiós, estado oculto!

La característica principal de marimo es su reactividad. Cambias el valor de una variable en una celda, y marimo ejecuta automáticamente todas las celdas dependientes. No más ejecuciones manuales, no más errores por datos obsoletos o pasos olvidados. Esto asegura que tu código y su salida siempre estén en un estado consistente. Imagina trabajar con una tabla de datos: cambias un filtro y todos los gráficos que usan esos datos se actualizan instantáneamente.

Reactividad de Marimo

2. Elementos de UI interactivos sin esfuerzo adicional

Crear controles interactivos (deslizadores, menús desplegables, tablas) en marimo es muy fácil. No necesitas escribir callbacks complejos o manejadores de eventos. Simplemente vincula un elemento de UI a una variable de Python, y marimo se encarga del resto. Esto abre enormes posibilidades para crear informes dinámicos, dashboards interactivos y materiales educativos.

Elementos de UI Interactivos en Marimo

Por cierto, marimo puede trabajar con tablas de datos interactivas, permitiéndote filtrar, buscar y ordenar millones de filas sin una sola línea de código. Esto es muy conveniente para la exploración rápida de datos.

Tablas de Datos Interactivas de Marimo

3. Compatible con Git: tu código es un archivo .py

Una de las mayores ventajas de marimo para los desarrolladores es cómo almacena los notebooks. En lugar del complejo formato JSON de Jupyter, marimo guarda tu código como un archivo Python regular con la extensión .py. Esto significa que puedes versionar fácilmente tus notebooks con Git, revisar cambios, fusionar ramas y colaborar con tu equipo sin complicaciones. ¡Por fin! Esto resuelve un problema enorme que muchos científicos de datos enfrentan.

4. Integración con SQL y asistente de IA

Marimo no se trata solo de Python. Te permite escribir consultas SQL directamente en celdas que pueden depender de variables de Python. Los resultados de las consultas se devuelven automáticamente como DataFrames de Python. Esto es increíblemente conveniente para trabajar con bases de datos, data warehouses o incluso archivos CSV.

Celda SQL en Marimo

Y si te encantan las herramientas modernas, marimo se integra con asistentes de IA (incluyendo GitHub Copilot) que pueden generar código considerando el contexto de tus variables. Esto acelera el desarrollo y te ayuda a concentrarte en resolver el problema.

Generación de Código con IA en Marimo

5. Convierte tu notebook en una aplicación o script

Marimo no es solo una herramienta de exploración. Puedes implementar fácilmente tu notebook como una aplicación web interactiva, ocultando el código y dejando solo la UI. Esto es perfecto para demostrar resultados, crear herramientas internas o recursos educativos. Además, los notebooks de marimo pueden ejecutarse como scripts de Python regulares desde la línea de comandos, parametrizados con argumentos.

Ejemplo de Aplicación Marimo

¿Cómo comenzar con marimo?

Comenzar es fácil. Abre tu terminal y ejecuta:

pip install marimo
marimo tutorial intro

Este comando instalará marimo y lançará un tutorial interactivo para ayudarte a dominar los conceptos básicos. Usa marimo edit para crear o editar notebooks, y marimo run your_notebook.py para ejecutar en modo aplicación.

Por cierto, si ya tienes Jupyter Notebooks, marimo puede convertirlos:

marimo convert your_notebook.ipynb > your_notebook.py

Conclusiones: ¿deberías probar marimo?

¡Absolutamente, sí! Marimo es un soplo de aire fresco en el mundo de los notebooks de Python. Resuelve problemas fundamentales que hemos enfrentado durante años mientras ofrece una herramienta poderosa e intuitiva.

Si tú:

  • Estás cansado del "estado oculto" y la irreproducibilidad de Jupyter.
  • Quieres versionar fácilmente tus notebooks con Git.
  • Sueñas con crear rápidamente aplicaciones web interactivas desde tu código.
  • Trabajas con datos y valoras la capacidad de escribir consultas SQL directamente en tu notebook.
  • Buscas un editor moderno con asistentes de IA y funciones convenientes.

Entonces marimo es exactamente lo que necesitas probar. No es solo un reemplazo de Jupyter — es su evolución, ofreciendo una experiencia de desarrollo más confiable, flexible y agradable. ¡Consulta la documentación y la galería de ejemplos para inspirarte y comenzar a crear!

¡Espero que esta descripción general te inspire a darle una oportunidad a marimo. ¡Estoy seguro de que no te arrepentirás!

Proyectos relacionados