3 puan yazan GN⁺ 2024-03-04 | 1 yorum | WhatsApp'ta paylaş

Observable Framework’ün yeni fikirleri

  • Observable Framework, Markdown ve JavaScript’i birleştirerek hızlı yüklenen etkileşimli sayfalara derleyen bir statik site oluşturucudur.
  • Dosyaları gerçek zamanlı olarak düzenleyip kaydettikten sonra değişiklikleri tarayıcıda anında görebilmeniz için hot reloading sunucusu sağlar.
  • Çalışma tamamlandığında statik dosyalara dönüştürülerek sunucuya dağıtılabilir veya doğrudan Observable’ın paylaşım platformuna dağıtılabilir.

Markdown içindeki JavaScript

  • Markdown içindeki js etiketi taşıyan kod blokları kullanıcının tarayıcısında JavaScript olarak çalıştırılır.
  • now adlı özel değişken, epoch’tan bu yana geçen mevcut zamanı milisaniye cinsinden sağlar ve sürekli güncellenir.
  • Observable Framework, etkileşimli belgeler üretmek için Markdown ile JavaScript’i tek bir metin belgesinde birleştirir.

Her şey hâlâ reaktif

  • Observable Framework, Observable notebook’larının reaktif yapısını korur ve bağımlı olduğu başka hücreler değiştiğinde otomatik olarak yenilenir.
  • Özellikle form girdileriyle çalışırken faydalıdır ve belgelere gerçek zamanlı etkileşim eklemeyi kolaylaştırır.

Yalnızca kullanılan kod dahil edilir

  • Observable Framework, geliştirme modunda lazy loading uygulayarak yalnızca kullanılan kodu yükler.
  • Uygulama build edilip dağıtıldığında, yalnızca başvurulan kütüphane kodu jsdelivr CDN’den otomatik olarak yüklenir.

Build sırasında veri önbellekleme

  • Framework, veri yükleyici mekanizması üzerinden build sırasında dashboard verilerini oluşturur ve bunları statik dosyalar olarak paketler.
  • Veri yükleyiciler, herhangi bir programlama diliyle yazılabilen; build sırasında çalıştırılıp çıktıyı dosya olarak kaydeden betiklerdir.

Observable notebook’larıyla karşılaştırma

  • Observable Framework, Observable notebook’larının fikirlerini ve kodunu yeniden kullanır; ancak tek bir metin dosyasından oluşur ve tamamen açık kaynaktır.
  • Standart JavaScript kullanır ve daha basit dosya biçimi sayesinde Git’e commit edilebilir.

Stratejideki değişim

  • Observable Framework, Observable şirketinin stratejisinde geliştirici araçları alanına daha fazla yöneldiğini gösterir.
  • Observable notebook’larının teknolojisine duyulan saygıyı korurken, platformun kapalı yapısı ve ücretsiz hesap sınırlamaları nedeniyle kullanımını kısıtlayan sorunları da çözer.

GN⁺ görüşü

  • Observable Framework, veri görselleştirme ve dashboard oluşturma için yeni bir araç olarak geliştiricilere daha iyi iş birliği ve verimlilik sunma potansiyeline sahiptir.
  • Veri temelli karar almayı destekleyen etkileşimli belgeler ve dashboard’lar oluşturmayı kolaylaştırdığı için hem veri bilimciler hem de geliştiriciler için yararlı olacaktır.
  • Ancak Observable Framework’ün başarısı, büyük ölçüde geliştirici topluluğu tarafından benimsenmesine ve mevcut araçlarla ne kadar iyi entegre olduğuna bağlı olacaktır.
  • Benzer işlevler sunan diğer projeler arasında Jupyter Notebook ve R Shiny bulunur; bunlarla yapılacak karşılaştırmalar Observable Framework’ün güçlü ve zayıf yönlerini daha iyi anlamaya yardımcı olabilir.
  • Observable Framework benimsenirken mevcut veri pipeline’larıyla uyumluluk, performans optimizasyonu ve topluluk desteği gibi unsurlar dikkate alınmalıdır.

1 yorum

 
GN⁺ 2024-03-04
Hacker News görüşleri
  • Observable Framework, Mike Bostock'un sinematik evrenindeki "Avengers: Endgame"e benzetiliyor.

    • d3, Observable, Observable Plot ve HTL'yi birleştirip üzerine yeni fikirler eklediği belirtiliyor.
  • Observable Framework kullanırken yaşanan bir sorun olarak, bunun d3 örnekleri için bir kaynak işlevi görmesi anılıyor.

    • Yalnızca bu framework içinde çalışacak şekilde tasarlandığı için kodu olduğu gibi kopyalayıp yapıştırmak mümkün değil.
    • d3'ün kendisi de kullanımı çok kolay değil ve sürümler arası uyumluluk sorunları var, ancak sitede etkileyici grafikler bulunabiliyor.
  • Observable Framework'ün GitHub Pages'e kolayca yayımlanabildiği belirtiliyor.

    • Yayımlama adımları ve örnek bir GitHub Action içeren not bağlantısı paylaşılıyor.
  • Observable notebook kullanarak ilk projeyi tamamlama deneyimi paylaşılıyor.

    • Observable Plot, Arquero, JavaScript'in bazı kısımlarını yeniden öğrenme ve Rust tabanlı bir simülatörle entegrasyon gibi çeşitli araçları öğrenmek ciddi enerji gerektirmiş.
    • Markdown ve reaktivite sayesinde notebook'un gerçekten kullanılabilir hissettirdiği söyleniyor.
    • Jupyter'deki özelleştirilmiş format, reaktivite eksikliği, sürüm kontrolü sorunları ve durum temelli karmaşayı çözdüğü ifade ediliyor.
    • Quarto ile Observable entegrasyonunu deneme girişimleri de olmuş, ancak bunun eksik ve parçalı hissettirdiği belirtiliyor.
    • Notebook yazma ve paylaşma konusunda mutlu ve heyecan verici bir deneyim olduğu, bundan sonra da ilk tercih edilen araç olacağı söyleniyor.
  • Observable Framework ile ilgili olumlu bir deneyim paylaşılıyor.

    • Etkileşimli plot'ları kurmanın ve veriyi görselleştirmenin çok kolay olduğu belirtiliyor.
    • Python data loader'ın virtualenvs kullanacak şekilde ayarlanabilmesinin iyi olacağı dile getiriliyor.
  • Jupyter notebook'lardan Observable'a geçilip geçilmemesi gerektiği sorusu gündeme getiriliyor.

  • Kod bloklarında js içerik ipucu varsa, bunun kullanıcının tarayıcısında anında çalıştırıldığı açıklanıyor.

    • Kodu göstermek için js echo ipucunun kullanılması gerektiği belirtiliyor.
    • Mevcut bir uygulamaya renderer entegre edilirken çalıştırmanın nasıl yönetileceği sorunu gündeme getiriliyor.
  • Observable'ın ClickHouse REST API ile iyi entegre olduğu ve veritabanını gerçek zamanlı sorgulayan örneklerin ilgi çekici olduğu belirtiliyor.

    • Uygulamanın etkileşimli olması gerektiği için veriyi önceden yükleyip önbelleğe almanın tek seçenek olmaması umuluyor.
  • Framework'ü tarayıcıda hızlıca denemek ve kurcalamak için Node ve Python ortamları otomatik yapılandırılmış Codespace devcontainer'ları kurulduğu belirtiliyor.

  • Observable'ın yalnızca JavaScript desteklemesinin kullanıcı tabanını sınırladığı görüşü dile getiriliyor.

    • JavaScript'in tarayıcıda etkileşimli görüntüleme için gerekli bir dil olduğu, ancak veri bilimi ve veri analizi için Python veya R'ye kıyasla elverişsiz bulunduğu ifade ediliyor.