DEV Community

Cover image for Marimo: O Notebook Python que vai te fazer esquecer o Jupyter
Francisco Júnior
Francisco Júnior

Posted on

Marimo: O Notebook Python que vai te fazer esquecer o Jupyter

Se você trabalha com Python, provavelmente tem uma relação de amor e ódio com o Jupyter Notebook. De um lado, a facilidade de prototipagem; do outro, o caos de rodar células fora de ordem, variáveis fantasmas e o pesadelo de dar um "git diff" em um arquivo .ipynb.

Recentemente, surgiu o marimo: um notebook reativo, open-source e focado em reprodutibilidade que armazena tudo em arquivos .py puros.

Neste artigo, vamos mergulhar no porquê você deveria dar uma chance a ele.


🧐 O Problema do "Estado Oculto"

No Jupyter, se você define x = 10 na Célula 1, apaga a célula e cria uma nova usando x, o valor 10 continua lá. Isso cria notebooks que funcionam hoje, mas quebram amanhã quando você tenta rodar do zero.

O marimo resolve isso sendo reativo.

1. Reatividade: Como o Excel, mas para Python

No marimo, as células conhecem as suas dependências.

  • Se a Célula A define uma variável e a Célula B a utiliza, ao alterar a Célula A, a B atualiza automaticamente.
  • É como uma planilha do Excel: você não precisa clicar em "Rodar" na célula de soma toda vez que altera um valor na coluna.

2. Adeus, .ipynb. Olá, .py puro!

Um dos maiores diferenciais do marimo é o armazenamento. Enquanto o Jupyter usa um JSON gigante e ilegível para o Git, o marimo salva seu notebook como um script Python convencional.

  • Git Friendly: Você consegue ler os diffs no GitHub sem esforço.
  • Executável: Você pode rodar um notebook marimo como um script normal: python notebook.py.

🛠️ Principais Funcionalidades

Funcionalidade Por que importa?
UI Integrada Sliders, botões e inputs nativos sem precisar de bibliotecas pesadas como o Streamlit para prototipar.
Sem Variáveis Fantasmas Se você deleta uma célula, as variáveis definidas nela são removidas do escopo global.
Performance O marimo analisa o grafo de dependências e só roda o que realmente mudou.
Painel de Variáveis Um inspetor em tempo real para ver tudo o que está na memória.

🚀 Mão na Massa: Instalando e Rodando

Para começar é ridicularmente simples (especialmente se você já instalou o Homebrew no seu novo Mac):

# Via pip
pip install marimo

# Ou via brew (se já estiver no Mac)
brew install marimo

Enter fullscreen mode Exit fullscreen mode

Para criar ou editar um notebook:

marimo edit meu_notebook.py

Enter fullscreen mode Exit fullscreen mode

E a mágica acontece: ele abre uma interface web moderna, rápida e com suporte nativo a Markdown e LaTeX (para as fórmulas matemáticas).


🎨 Transformando Notebook em App

O marimo tem um comando chamado marimo run. Ele esconde o código e mostra apenas os outputs e elementos de UI, transformando instantaneamente seu notebook em uma Dashboard ou Web App.

"É como se o Jupyter e o Streamlit tivessem um filho que nasceu sabendo usar Git."


🆚 Marimo vs. Jupyter: Qual escolher?

Característica Jupyter marimo
Formato de Arquivo .ipynb (JSON) .py (Código Puro)
Execução Manual (Célula por célula) Reativa (Automática)
Versionamento Difícil (requer extensões) Nativo e limpo
Interface de Usuário Widgets complexos Nativa e simples

Conclusão

O marimo não é apenas "mais um notebook". Ele é uma tentativa séria de trazer as boas práticas da engenharia de software (como versionamento e consistência de estado) para o mundo da ciência de dados.

Se você está cansado de notebooks que "só funcionam na minha máquina" ou quer uma forma rápida de criar apps internos em Python, o marimo é o seu próximo passo.

Top comments (0)