Quando NÃO usar DataForge
A pergunta honesta, respondida com a medida: onde a linguagem serve, onde ela custa caro e onde ela simplesmente não é a ferramenta.
Toda linguagem tem uma resposta pronta para por que me escolher. Esta página é a outra. Ela existe porque a recomendação errada custa mais que a falta de recomendação — e porque quem descobre o limite em produção não volta.
Não use quando o trabalho é de CPU e o prazo é curto#
DataForge é um interpretador de árvore escrito em Python, com compilação para fechamentos. Medido, de 1,5× a 1,8× mais rápido que a travessia de árvore pura — e ainda assim mais lento que o CPython, que já é mais lento que quase tudo.
| Trabalho | Resposta |
|---|---|
| laço numérico apertado | não — ou adopt Python.numpy, que roda vetorizado de verdade |
| muitos núcleos, trabalho de CPU | P.map_processos — medido 3,45× em 10 núcleos |
muitos núcleos, com thread | não: o GIL continua no caminho, e a medida foi 0,97× |
| rede, disco, banco | sim — async/await sobrepõe de verdade |
Não use como servidor público sem algo na frente#
O Kiln roda sobre o http.server do Python. Ele não tem TLS e não tem HTTP/2 — e isso não é uma pendência de roadmap, é uma decisão: refazer TLS em Python puro seria a pior escolha de segurança possível. Em produção pública, ponha um nginx ou um Caddy na frente.
E ele atende um pedido por thread, sem sincronizar nada por você. Uma rota que lê, decide e escreve num estado em memória perde atualizações — medido: seis pedidos simultâneos entregaram 1 de 6. O check avisa (escrita-concorrente), e a resposta é Arcane.Concurrent.
Não use onde o ecossistema é o produto#
A biblioteca padrão tem 87 módulos e 2323 símbolos, sem uma única dependência externa. Isso cobre muito — e não cobre o PyTorch, o Kubernetes client, o driver do seu ERP. A ponte para o Python existe (adopt Python.pandas as pd) e é real, mas se a maior parte do seu sistema vai ser Python chamado de dentro, escreva em Python.
Não use se você precisa de um destes#
- Binário nativo — não há backend LLVM, e não haverá: amarrar o LLVM tiraria a única propriedade inegociável do projeto, que é zero dependência externa.
- Bare-metal / microcontrolador rodando a linguagem —
Arcane.IoTfala com a placa pela serial; a linguagem não roda dentro dela. - Aplicativo Android empacotado — há PWA (
dataforge mobile pwa), não há APK. - Alocador próprio — o alocador é o do CPython. Há controle do coletor (
Arcane.Memoria), que é outra coisa, e o projeto prefere nomear a diferença.
Onde ela é uma boa escolha#
- Ferramenta interna — CLI, script de dados, automação.
dataforge newsai com testes, CI eforge.toml. - Painel de dados — a Vitrine desenha o gráfico no servidor, em SVG, sem uma linha de CDN. É o que funciona em rede fechada.
- Ensino — a análise estática acusa antes de rodar, e as mensagens dizem o que fazer.
- Prototipagem com hardware — a placa vira periférico e o laço de trabalho passa a ser o do computador.
- Sistema modular de verdade — o
checkatravessa arquivos:P.criar(1, 2, 3)é acusado antes de rodar, mesmo vindo de outro.df.