3 poin oleh GN⁺ 2024-03-04 | 1 komentar | Bagikan ke WhatsApp

Ide baru di Observable Framework

  • Observable Framework adalah generator situs statis yang mengompilasi campuran Markdown dan JavaScript menjadi halaman interaktif yang dimuat dengan cepat.
  • Framework ini menyediakan server hot reloading yang memungkinkan Anda mengedit dan menyimpan file secara real-time lalu langsung melihat perubahannya di browser.
  • Setelah pekerjaan selesai, hasilnya dapat diubah menjadi file statis untuk dideploy ke server atau langsung dipublikasikan ke platform berbagi milik Observable.

JavaScript di dalam Markdown

  • Blok kode di dalam Markdown yang diberi tag js dijalankan sebagai JavaScript di browser pengguna.
  • Variabel khusus bernama now menyediakan waktu saat ini dalam milidetik sejak epoch dan terus diperbarui.
  • Observable Framework menyatukan Markdown dan JavaScript ke dalam satu dokumen teks untuk membuat dokumen interaktif.

Semuanya tetap reaktif

  • Observable Framework mempertahankan reaktivitas dari Observable notebook, dan otomatis memuat ulang saat sel lain yang menjadi dependensinya berubah.
  • Ini sangat berguna terutama saat bekerja dengan input formulir, sehingga interaktivitas real-time dapat ditambahkan ke dokumen dengan mudah.

Hanya menyertakan kode yang digunakan

  • Observable Framework menerapkan lazy loading dalam mode pengembangan sehingga hanya kode yang digunakan yang dimuat.
  • Saat aplikasi dibangun dan dideploy, hanya kode library yang dirujuk yang dimuat secara otomatis dari jsdelivr CDN.

Cache data pada waktu build

  • Framework ini membangun data dashboard pada waktu build melalui mekanisme data loader lalu membundelnya sebagai file statis.
  • Data loader adalah skrip yang dapat ditulis dengan bahasa pemrograman apa pun, dijalankan pada waktu build, lalu output-nya disimpan sebagai file.

Perbandingan dengan Observable notebook

  • Observable Framework menggunakan kembali ide dan kode dari Observable notebook, tetapi disusun sebagai satu file teks dan seluruhnya bersifat open source.
  • Framework ini menggunakan JavaScript standar dan dapat di-check in ke Git dengan format file yang lebih sederhana.

Perubahan strategi

  • Observable Framework menunjukkan perubahan strategis di perusahaan Observable yang kini lebih condong ke ranah alat pengembang.
  • Dengan tetap menghormati teknologi Observable notebook, Observable Framework juga menyelesaikan masalah yang sebelumnya membatasi penggunaannya karena sifat platform yang tertutup dan keterbatasan akun gratis.

Opini GN⁺

  • Observable Framework adalah alat baru untuk visualisasi data dan pembangunan dashboard, dengan potensi memberi kolaborasi dan efisiensi yang lebih baik bagi para pengembang.
  • Platform ini memudahkan pembuatan dokumen dan dashboard interaktif yang mendukung pengambilan keputusan berbasis data, sehingga akan bermanfaat bagi ilmuwan data maupun pengembang.
  • Namun, keberhasilan Observable Framework akan sangat bergantung pada tingkat adopsi komunitas pengembang dan sejauh mana integrasinya dengan alat-alat yang sudah ada.
  • Proyek lain dengan fitur serupa antara lain Jupyter Notebook dan R Shiny, dan perbandingan dengan keduanya dapat membantu memahami kelebihan dan kekurangan Observable Framework dengan lebih baik.
  • Saat mengadopsi Observable Framework, perlu mempertimbangkan faktor-faktor seperti kompatibilitas dengan pipeline data yang ada, optimisasi performa, serta dukungan komunitas.

1 komentar

 
GN⁺ 2024-03-04
Komentar Hacker News
  • Observable Framework diibaratkan sebagai "Avengers: Endgame" dalam semesta sinematik Mike Bostock.

    • Dijelaskan sebagai gabungan d3, Observable, Observable Plot, dan HTL, ditambah ide-ide baru.
  • Sebagai kekurangan saat memakai Observable Framework, disebutkan fungsinya sebagai sumber contoh d3.

    • Dirancang agar hanya berjalan di framework tersebut, sehingga kodenya tidak bisa langsung disalin-tempel begitu saja.
    • d3 sendiri tidak mudah digunakan dan memiliki masalah kompatibilitas antarversi, tetapi di situsnya bisa ditemukan grafik yang mengagumkan.
  • Disebutkan bahwa Observable Framework bisa dengan mudah dipublikasikan ke situs GitHub.

    • Disediakan tautan ke catatan yang menuliskan langkah-langkah publikasi dan contoh GitHub Action.
  • Dibagikan pengalaman menyelesaikan proyek pertama menggunakan notebook Observable.

    • Cukup banyak energi dihabiskan untuk mempelajari berbagai alat, seperti Observable Plot, Arquero, mempelajari ulang sebagian JavaScript, dan integrasi dengan simulator berbasis Rust.
    • Dengan Markdown dan reaktivitas, notebook terasa benar-benar bisa digunakan.
    • Ini menyelesaikan masalah kontrol versi dan kebingungan berbasis status yang muncul akibat format kustom Jupyter dan ketiadaan reaktivitas.
    • Pernah juga mencoba integrasi Observable dengan Quarto, tetapi terasa tidak lengkap dan terpecah-pecah.
    • Pengalaman menulis dan membagikan notebook terasa menyenangkan dan menggairahkan, dan ke depan akan tetap dijadikan alat pilihan utama.
  • Dibagikan pengalaman positif terhadap Observable Framework.

    • Disebutkan bahwa menyiapkan plot interaktif dan proses mem-plot data terasa sangat sederhana.
    • Disampaikan harapan agar Python data loader bisa diatur untuk menggunakan virtualenvs.
  • Muncul pertanyaan apakah perlu berpindah dari notebook Jupyter ke Observable.

  • Dijelaskan bahwa jika ada petunjuk konten 'js' di dalam blok kode, isinya akan langsung dijalankan di browser pengguna.

    • Untuk menampilkan kode, harus memakai petunjuk 'js echo'.
    • Diangkat pula masalah perlunya mengelola eksekusi saat mengintegrasikan renderer ke aplikasi yang sudah ada.
  • Disebutkan bahwa Observable terintegrasi dengan baik dengan REST API ClickHouse, dan contoh yang melakukan query database secara real-time terasa menarik.

    • Karena aplikasinya harus interaktif, diharapkan pramuat dan cache data bukan menjadi satu-satunya opsi.
  • Disiapkan Codespace devcontainer dengan lingkungan Node dan Python yang dikonfigurasi otomatis agar Framework bisa cepat dicoba dan diutak-atik di browser.

  • Disampaikan pendapat bahwa Observable membatasi basis penggunanya karena hanya mendukung JavaScript.

    • JavaScript dinilai sebagai bahasa yang penting untuk tampilan interaktif di browser, tetapi untuk data science dan analisis data terasa kurang nyaman dibanding Python atau R.