Bonsai: Biblioteca de UI da Jane Street

A biblioteca de UI Bonsai da Jane Street para OCaml provoca debate sobre se frameworks web especializados e fortemente tipados ainda importam numa era em que a IA pode gerar UIs sob medida sobre stacks JavaScript mainstream. Os apoiadores destacam a capacidade de Bonsai de compartilhar tipos entre frontend e backend, seu modelo incremental de máquina de estados inspirado no Elm e seu uso tanto para interfaces web quanto de terminal, especialmente em ferramentas de trading de alta densidade de informação. Os críticos questionam o timing, o polimento visual, a integração com o ecossistema JS existente e a documentação escassa, enquanto outros observam que, para uma operação interna com recursos profundos, esses trade-offs podem ser aceitáveis.

Plataforma e Escopo

  • Confusão inicial sobre ser “apenas web”; esclareceu-se que também existe uma implementação Bonsai_term para terminal.
  • A biblioteca central é apresentada como uma framework genérica, incremental e composível de máquina de estados; Bonsai_web e Bonsai_term são especializações para navegador e terminal.
  • Alguns perguntam sobre usá-la para relatórios HTML ou TUIs; as respostas dizem que ela se destaca em UIs complexas, interativas e com estado, não em relatórios estáticos simples.

OCaml, Ecossistema e “Mesmo Idioma no Front/Back”

  • Muitos gostam de que frontend e backend possam compartilhar tipos e lógica em OCaml; outros observam que isso já era possível há anos com iniciativas anteriores de OCaml para JS.
  • Comparação entre js_of_ocaml e Melange, além de outras pilhas “compilar para JS” (Scala.js, F#, ClojureScript, KotlinJS, Fable).
  • Tema recorrente: integrar essas pilhas ao ecossistema mais amplo de JS exige wrappers e interoperabilidade, o que pode ser doloroso.
  • Alguns mostram ceticismo de que, na era dos LLMs, bibliotecas genéricas de UI importem menos; o contra-argumento é que frameworks melhores ainda ajudam humanos e AIs a evitar erros.

JS, WASM e Desvio para TypeScript

  • Discussão sobre limitações de otimização de tail calls em JS e a necessidade de trampolins.
  • WASM é visto como promissor, mas atualmente prejudicado pela falta de acesso direto ao DOM/APIs web e por tamanho de download maior.
  • TypeScript é debatido: alguns dizem que é “apenas JS com tipos removidos”, outros enfatizam que alguns construtos ainda exigem compilação e que continua sendo uma linguagem distinta.

Design, Estética e Densidade de Informação

  • Vários comentários criticam as UIs de exemplo como visualmente pouco polidas ou com aparência “dos anos 90”.
  • Outros defendem fortemente alta densidade de informação e pouco espaço em branco, especialmente para fluxos de trabalho de trading/finanças, em que velocidade e comparações lado a lado importam.
  • O contraponto: margens zero ou inconsistentes podem prejudicar a legibilidade até para usuários experientes; destaca-se a tensão entre descobribilidade para novos usuários e produtividade para usuários avançados.

Adoção, Ferramentas e Documentação

  • Preocupações com bus factor, velocidade de compilação, hot reload e manutenção; alguns relatam que OCaml compila rapidamente e é muito sustentável de manter.
  • Bonsai é descrita como verbosa em comparação com React/Vue, com alguns esperando que LLMs absorvam o boilerplate.
  • São notados links de documentação quebrados e a ausência de uma página pública de demonstração; a estratégia de atualização do DOM (direta vs diff) é levantada, mas não fica claramente respondida.
  • Confirma-se uso pesado interno em produção na firma de origem; há incerteza sobre sua adequação como escolha greenfield em equipes de produto típicas.