3 Punkte von GN⁺ 2024-03-04 | 1 Kommentare | Auf WhatsApp teilen

Neue Ideen im Observable Framework

  • Observable Framework ist ein statischer Site-Generator, der Markdown und JavaScript mischt und zu schnell ladenden interaktiven Seiten kompiliert.
  • Es bietet einen Hot-Reloading-Server, mit dem man Dateien in Echtzeit bearbeiten und speichern kann, sodass Änderungen sofort im Browser sichtbar werden.
  • Wenn die Arbeit abgeschlossen ist, kann alles in statische Dateien umgewandelt und auf einem Server bereitgestellt oder direkt auf der Sharing-Plattform von Observable veröffentlicht werden.

JavaScript in Markdown

  • Codeblöcke in Markdown mit dem Tag js werden im Browser der Nutzer als JavaScript ausgeführt.
  • Eine besondere Variable namens now liefert die aktuelle Zeit seit der Epoch in Millisekunden und wird fortlaufend aktualisiert.
  • Observable Framework integriert Markdown und JavaScript in einem einzigen Textdokument, um interaktive Dokumente zu erzeugen.

Alles bleibt weiterhin reaktiv

  • Observable Framework behält die Reaktivität von Observable-Notebooks bei und wird automatisch aktualisiert, wenn sich andere abhängige Zellen ändern.
  • Das ist besonders nützlich bei der Arbeit mit Formulareingaben und macht es einfach, Dokumenten Interaktivität in Echtzeit hinzuzufügen.

Nur der tatsächlich verwendete Code wird eingebunden

  • Observable Framework implementiert im Entwicklungsmodus Lazy Loading und lädt nur den Code, der tatsächlich verwendet wird.
  • Beim Build und Deployment einer Anwendung wird nur der referenzierte Bibliothekscode automatisch vom jsdelivr-CDN geladen.

Daten-Caching zur Build-Zeit

  • Das Framework erzeugt über einen Data-Loader-Mechanismus Dashboard-Daten zur Build-Zeit und bündelt sie in statische Dateien.
  • Data Loader sind Skripte, die in beliebigen Programmiersprachen geschrieben werden können, zur Build-Zeit ausgeführt werden und ihre Ausgabe als Datei speichern.

Vergleich mit Observable-Notebooks

  • Observable Framework nutzt Ideen und Code aus Observable-Notebooks wieder, besteht jedoch aus einer einzigen Textdatei und ist vollständig Open Source.
  • Es verwendet Standard-JavaScript und kann in einem einfacheren Dateiformat in Git eingecheckt werden.

Veränderung der Strategie

  • Observable Framework steht für eine strategische Neuausrichtung des Unternehmens Observable, das sich stärker in Richtung Developer-Tools bewegt.
  • Neben dem Respekt für die Technologie von Observable-Notebooks adressiert Observable Framework auch Probleme, die die Nutzung wegen des proprietären Charakters der Plattform und der Beschränkungen kostenloser Konten eingeschränkt hatten.

Meinung von GN⁺

  • Observable Framework ist ein neues Werkzeug für Datenvisualisierung und den Aufbau von Dashboards und hat das Potenzial, Entwicklern bessere Zusammenarbeit und höhere Effizienz zu bieten.
  • Die Plattform erleichtert die Erstellung interaktiver Dokumente und Dashboards zur Unterstützung datenbasierter Entscheidungen und dürfte daher sowohl für Data Scientists als auch für Entwickler nützlich sein.
  • Der Erfolg von Observable Framework wird jedoch stark davon abhängen, wie gut es von der Entwickler-Community angenommen wird und wie tief die Integration mit bestehenden Tools ausfällt.
  • Andere Projekte mit ähnlichen Funktionen sind etwa Jupyter Notebook oder R Shiny; ein Vergleich mit ihnen hilft, die Stärken und Schwächen von Observable Framework besser zu verstehen.
  • Bei der Einführung von Observable Framework sollten Faktoren wie die Kompatibilität mit bestehenden Datenpipelines, Performance-Optimierung und Community-Support berücksichtigt werden.

1 Kommentare

 
GN⁺ 2024-03-04
Hacker-News-Kommentare
  • Das Observable Framework wird in Mike Bostocks filmischem Universum mit "Avengers: Endgame" verglichen.

    • Es wird als Kombination aus d3, Observable, Observable Plot und HTL beschrieben, ergänzt um neue Ideen.
  • Als Problem bei der Nutzung des Observable Framework wird seine Funktion als d3-Beispielressource erwähnt.

    • Es ist so konzipiert, dass es nur in diesem Framework läuft, sodass sich der Code nicht einfach per Copy-and-paste übernehmen lässt.
    • d3 selbst ist nicht gerade einfach zu benutzen und hat Kompatibilitätsprobleme zwischen Versionen, aber auf der Website findet man erstaunliche Grafiken.
  • Es wird erwähnt, dass sich das Observable Framework leicht auf GitHub Sites veröffentlichen lässt.

    • Es wird ein Link zu Notizen mit den Schritten zur Veröffentlichung und einer Beispiel-GitHub-Action bereitgestellt.
  • Jemand teilt die Erfahrung, mit Observable Notebooks das erste Projekt abgeschlossen zu haben.

    • Das Erlernen verschiedener Werkzeuge wie Observable Plot, Arquero, das erneute Lernen von Teilen von JavaScript und die Integration mit einem Rust-basierten Simulator kostete erheblich Energie.
    • Durch Markdown und Reaktivität fühlt sich das Notebook tatsächlich gut nutzbar an.
    • Probleme von Jupyter mit benutzerdefinierten Formaten, Versionsverwaltung wegen fehlender Reaktivität und zustandsbasierte Verwirrung werden damit gelöst.
    • Es gab auch Versuche einer Observable-Integration mit Quarto, diese wirkte jedoch unvollständig und fragmentiert.
    • Das Schreiben und Teilen von Notebooks war eine erfreuliche und spannende Erfahrung, und es wird auch künftig das bevorzugte Werkzeug bleiben.
  • Es werden positive Erfahrungen mit dem Observable Framework geteilt.

    • Das Einrichten interaktiver Plots und der Prozess des Datenplottens seien sehr einfach gewesen.
    • Es wird der Wunsch geäußert, dass sich der Python-Datenlader so konfigurieren lässt, dass er virtualenvs verwendet.
  • Es wird die Frage aufgeworfen, ob man von Jupyter-Notebooks zu Observable wechseln sollte.

  • Es wird erklärt, dass bei einem Codeblock mit dem Inhalts-Hinweis js dieser sofort im Browser des Nutzers ausgeführt wird.

    • Um den Code anzuzeigen, müsse der Hinweis js echo verwendet werden.
    • Dabei wird das Problem angesprochen, dass bei der Integration des Renderers in eine bestehende App die Ausführung verwaltet werden muss.
  • Es wird erwähnt, dass sich Observable gut mit der REST API von ClickHouse integrieren lässt und dass ein Beispiel zum Live-Abfragen der Datenbank interessant ist.

    • Da die App interaktiv sein muss, hofft man, dass das Vorladen und Cachen von Daten nicht die einzige Option ist.
  • Es wurden Codespace-Devcontainer eingerichtet, in denen Node- und Python-Umgebungen automatisch konfiguriert sind, damit man das Framework im Browser schnell ausprobieren und damit herumspielen kann.

  • Es wird die Meinung vertreten, dass Observable durch die ausschließliche Unterstützung von JavaScript seine Nutzerbasis einschränkt.

    • JavaScript ist zwar für interaktive Darstellungen im Browser unverzichtbar, wird für Data Science und Datenanalyse aber im Vergleich zu Python oder R als unpraktisch angesehen.