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
Para criar ou editar um notebook:
marimo edit meu_notebook.py
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)