3 points par GN⁺ 2024-03-04 | 1 commentaires | Partager sur WhatsApp

Nouvelles idées dans Observable Framework

  • Observable Framework est un générateur de sites statiques qui compile du Markdown et du JavaScript en pages interactives à chargement rapide.
  • Il fournit un serveur avec hot reloading qui permet d’éditer et d’enregistrer des fichiers en temps réel pour voir immédiatement les changements dans le navigateur.
  • Une fois le travail terminé, il est possible de convertir le tout en fichiers statiques pour les déployer sur un serveur ou directement sur la plateforme de partage d’Observable.

JavaScript dans le Markdown

  • Les blocs de code marqués avec le tag js dans le Markdown sont exécutés comme du JavaScript dans le navigateur de l’utilisateur.
  • Une variable spéciale appelée now fournit l’heure actuelle en millisecondes depuis l’époque Unix et se met à jour en continu.
  • Observable Framework unifie Markdown et JavaScript dans un seul document texte afin de créer des documents interactifs.

Tout reste réactif

  • Observable Framework conserve la réactivité des notebooks Observable et se rafraîchit automatiquement lorsque d’autres cellules dont il dépend changent.
  • C’est particulièrement utile lorsqu’on travaille avec des entrées de formulaire, et cela permet d’ajouter facilement de l’interactivité en temps réel à un document.

N’inclure que le code utilisé

  • Observable Framework implémente le chargement différé en mode développement afin de ne charger que le code réellement utilisé.
  • Lors de la compilation et du déploiement de l’application, seul le code des bibliothèques référencées est chargé automatiquement depuis le CDN jsdelivr.

Mettre les données en cache au moment du build

  • Le framework construit les données de tableau de bord au moment du build via un mécanisme de chargeur de données, puis les regroupe dans des fichiers statiques.
  • Un chargeur de données est un script qui peut être écrit dans n’importe quel langage de programmation, s’exécute au moment du build et enregistre sa sortie dans un fichier.

Comparaison avec les notebooks Observable

  • Observable Framework réutilise les idées et le code des notebooks Observable, mais se compose d’un unique fichier texte et est entièrement open source.
  • Il utilise du JavaScript standard et peut être versionné dans Git avec un format de fichier plus simple.

Changement de stratégie

  • Observable Framework représente un changement stratégique de l’entreprise Observable, qui s’oriente davantage vers l’univers des outils pour développeurs.
  • Tout en respectant la technologie des notebooks Observable, Observable Framework résout aussi les problèmes qui limitaient son adoption à cause de la nature propriétaire de la plateforme et des restrictions des comptes gratuits.

Avis de GN⁺

  • Observable Framework est un nouvel outil pour la visualisation de données et la création de tableaux de bord, avec le potentiel d’offrir aux développeurs une meilleure collaboration et une plus grande efficacité.
  • Cette plateforme facilite la création de documents interactifs et de tableaux de bord soutenant une prise de décision fondée sur les données, ce qui la rend utile à la fois pour les data scientists et les développeurs.
  • Cependant, le succès d’Observable Framework dépendra fortement de son adoption par la communauté des développeurs et de son niveau d’intégration avec les outils existants.
  • Parmi les autres projets offrant des fonctionnalités similaires, on peut citer Jupyter Notebook et R Shiny, et leur comparaison permet de mieux comprendre les forces et les limites d’Observable Framework.
  • Lors de l’adoption d’Observable Framework, il faut prendre en compte des éléments comme la compatibilité avec les pipelines de données existants, l’optimisation des performances et le support de la communauté.

1 commentaires

 
GN⁺ 2024-03-04
Avis Hacker News
  • Observable Framework est comparé à « Avengers: Endgame » dans l’univers cinématographique de Mike Bostock.

    • Il est décrit comme une combinaison de d3, Observable, Observable Plot et HTL, à laquelle s’ajoutent de nouvelles idées.
  • Un problème soulevé avec Observable Framework concerne son rôle de ressource d’exemples pour d3.

    • Comme il est conçu pour s’exécuter uniquement dans ce framework, il n’est pas possible de copier-coller le code tel quel.
    • d3 lui-même n’est pas particulièrement simple à utiliser et pose des problèmes de compatibilité entre versions, mais on peut trouver sur le site des graphismes étonnants.
  • Il est mentionné qu’Observable Framework peut être publié facilement sur un site GitHub.

    • Un lien vers une note fournissant les étapes de publication et un exemple de GitHub Action est partagé.
  • Une personne partage son expérience après avoir terminé son premier projet avec un notebook Observable.

    • Une quantité importante d’énergie a été consacrée à l’apprentissage de divers outils, dont Observable Plot, Arquero, une remise à niveau sur certains aspects de JavaScript, ainsi que l’intégration avec un simulateur basé sur Rust.
    • Grâce au Markdown et à la réactivité, le notebook donne l’impression d’être réellement utilisable.
    • Cela résout les problèmes de gestion de versions et la confusion liée à l’état, causés par les formats personnalisés de Jupyter et l’absence de réactivité.
    • Il y a aussi eu des tentatives d’intégration d’Observable avec Quarto, mais cela paraissait incomplet et fragmenté.
    • L’expérience d’écriture et de partage de notebooks a été jugée enthousiasmante et réjouissante, et cet outil restera leur premier choix à l’avenir.
  • Une expérience positive avec Observable Framework est également partagée.

    • Il est indiqué que la mise en place de plots interactifs et le processus de traçage des données ont été extrêmement simples.
    • Le souhait est exprimé de pouvoir configurer le chargeur de données Python pour qu’il utilise des virtualenvs.
  • La question est posée de savoir s’il faut passer de Jupyter Notebook à Observable.

  • Il est expliqué que, s’il y a un indice de contenu js dans un bloc de code, celui-ci s’exécute immédiatement dans le navigateur de l’utilisateur.

    • Pour afficher le code, il faut utiliser l’indice js echo.
    • La question du contrôle de l’exécution est soulevée lorsqu’on intègre le moteur de rendu dans une application existante.
  • Il est mentionné qu’Observable s’intègre bien avec l’API REST de ClickHouse, et que l’exemple qui interroge la base de données en temps réel est intéressant.

    • Comme l’application doit être interactive, on espère que le préchargement et la mise en cache des données ne seront pas la seule option.
  • Des devcontainers Codespace avec environnements Node et Python configurés automatiquement ont été mis en place afin de pouvoir essayer et manipuler rapidement Framework dans le navigateur.

  • Un avis affirme qu’en ne prenant en charge que JavaScript, Observable limite sa base d’utilisateurs.

    • Même si JavaScript est indispensable dans le navigateur pour l’affichage interactif, il est jugé moins pratique que Python ou R pour la data science et l’analyse de données.