3 pontos por GN⁺ 2024-03-04 | 1 comentários | Compartilhar no WhatsApp

Novas ideias do Observable Framework

  • O Observable Framework é um gerador de sites estáticos que compila uma mistura de Markdown e JavaScript em páginas interativas de carregamento rápido.
  • Ele oferece um servidor com hot reloading que permite editar e salvar arquivos em tempo real e ver imediatamente as mudanças no navegador.
  • Quando o trabalho é concluído, é possível convertê-lo em arquivos estáticos para implantar em um servidor ou publicar diretamente na plataforma de compartilhamento do Observable.

JavaScript dentro do Markdown

  • Blocos de código dentro do Markdown marcados com a tag js são executados como JavaScript no navegador do usuário.
  • Uma variável especial chamada now fornece a hora atual em milissegundos desde a época Unix e é atualizada continuamente.
  • O Observable Framework integra Markdown e JavaScript em um único documento de texto para criar documentos interativos.

Tudo ainda é reativo

  • O Observable Framework mantém a reatividade dos notebooks do Observable e se atualiza automaticamente quando outras células das quais depende mudam.
  • Isso é especialmente útil ao trabalhar com entradas de formulário e permite adicionar interatividade em tempo real aos documentos com facilidade.

Inclui apenas o código usado

  • O Observable Framework implementa lazy loading no modo de desenvolvimento para carregar apenas o código que está sendo usado.
  • Ao compilar e implantar a aplicação, apenas o código das bibliotecas referenciadas é carregado automaticamente a partir da CDN jsdelivr.

Cache de dados no tempo de build

  • O Framework gera os dados de dashboards no tempo de build por meio de um mecanismo de data loaders e os empacota como arquivos estáticos.
  • Data loaders são scripts que podem ser escritos em qualquer linguagem de programação, executados no tempo de build e com sua saída salva em arquivos.

Comparação com os notebooks do Observable

  • O Observable Framework reutiliza ideias e código dos notebooks do Observable, mas é composto por um único arquivo de texto e é totalmente open source.
  • Ele usa JavaScript padrão e pode ser versionado no Git com um formato de arquivo mais simples.

Mudança de estratégia

  • O Observable Framework representa uma mudança estratégica da empresa Observable em direção ao espaço de ferramentas para desenvolvedores.
  • Junto com o respeito pela tecnologia dos notebooks do Observable, o Observable Framework resolve problemas que limitavam seu uso por causa da natureza proprietária da plataforma e das restrições das contas gratuitas.

Opinião do GN⁺

  • O Observable Framework é uma nova ferramenta para visualização de dados e construção de dashboards, com potencial para oferecer melhor colaboração e eficiência aos desenvolvedores.
  • A plataforma facilita a criação de documentos e dashboards interativos que apoiam a tomada de decisões orientada por dados, o que deve torná-la útil tanto para cientistas de dados quanto para desenvolvedores.
  • No entanto, o sucesso do Observable Framework dependerá fortemente da adoção pela comunidade de desenvolvedores e do grau de integração com as ferramentas existentes.
  • Outros projetos com funcionalidades semelhantes incluem Jupyter Notebook e R Shiny, e compará-los pode ajudar a entender melhor os pontos fortes e fracos do Observable Framework.
  • Ao adotar o Observable Framework, é importante considerar fatores como compatibilidade com pipelines de dados existentes, otimização de desempenho e suporte da comunidade.

1 comentários

 
GN⁺ 2024-03-04
Comentários do Hacker News
  • O Observable Framework é comparado a "Vingadores: Ultimato" dentro do universo cinematográfico de Mike Bostock.

    • É descrito como uma combinação de d3, Observable, Observable Plot e HTL, com novas ideias adicionadas.
  • É mencionado que há um problema ao usar o Observable Framework como recurso de exemplos de d3.

    • Como foi projetado para rodar apenas nesse framework, não é possível copiar e colar o código diretamente.
    • O próprio d3 não é fácil de usar e há problemas de compatibilidade entre versões, mas é possível encontrar gráficos impressionantes no site.
  • É mencionado que o Observable Framework pode ser publicado facilmente em sites do GitHub.

    • É fornecido um link para uma nota com as etapas de publicação e um exemplo de GitHub Action.
  • É compartilhada a experiência de concluir o primeiro projeto usando notebooks do Observable.

    • Foi gasta bastante energia aprendendo várias ferramentas, como Observable Plot, Arquero, reaprendendo parte de JavaScript e integrando com um simulador baseado em Rust.
    • Com Markdown e reatividade, o notebook pareceu realmente utilizável.
    • Isso resolveu os problemas de controle de versão e a confusão baseada em estado causados pelo formato personalizado do Jupyter e pela falta de reatividade.
    • Também houve uma tentativa de integração do Observable com o Quarto, mas isso pareceu incompleto e fragmentado.
    • Foi uma experiência feliz e empolgante escrever e compartilhar notebooks, e continuará sendo a ferramenta de primeira escolha no futuro.
  • É compartilhada uma experiência positiva com o Observable Framework.

    • Foi mencionado que configurar plots interativos e plotar dados foi muito simples.
    • Também foi expressado o desejo de que o carregador de dados em Python pudesse ser configurado para usar virtualenvs.
  • É levantada a pergunta sobre a necessidade de migrar de notebooks Jupyter para Observable.

  • É explicado que, se houver uma dica de conteúdo js dentro de um bloco de código, ele será executado imediatamente no navegador do usuário.

    • Para mostrar o código, é preciso usar a dica js echo.
    • Também é levantado o problema de ter de gerenciar a execução ao integrar o renderizador em um app existente.
  • É mencionado que o Observable se integra bem com a REST API do ClickHouse, e que o exemplo de consultar o banco de dados em tempo real é interessante.

    • Como o app precisa ser interativo, espera-se que pré-carregar e armazenar os dados em cache não seja a única opção.
  • Foram configurados devcontainers do Codespace com ambientes Node e Python preparados automaticamente para que seja possível testar e mexer rapidamente no Framework no navegador.

  • É apresentada a opinião de que o Observable limita sua base de usuários ao oferecer suporte apenas a JavaScript.

    • Embora JavaScript seja uma linguagem essencial para exibições interativas no navegador, ela é considerada menos conveniente para ciência e análise de dados do que Python ou R.