3 puan yazan GN⁺ 2024-10-11 | 1 yorum | WhatsApp'ta paylaş

Wasm yeni CGI

  • Wasm'ın rolü: Wasm (WebAssembly), web uygulaması modelinde yeni bir değişim getirmeye hazırlanıyor. Odak noktası, yüksek performanslı uygulamaların kolayca kurulup sürdürülebilmesini sağlamak.
  • Geçmiş web uygulaması modeli: CGI, web'i bir belge arşivinden bir uygulama ağına dönüştürdü. FastCGI, performans sorunlarını çözmek için geliştirildi ve daha sonra serverless bilişime evrildi.
  • Serverless bilişim: Amazon Lambda gibi serverless bilişim modelleri, sunucu yönetmek yerine "fonksiyon" yönetmenizi sağlar. Bu da istek hacmine göre hızla ölçeklenebilme avantajı sunar.

Sunucuda Wasm

  • Wasm'ın genişleyebilirliği: Wasm yalnızca tarayıcıda değil, sunucuda da çalışabilir ve bu da sunucu tarafı uygulamalar için daha hafif bir izolasyon modeli sunar.
  • Wasm çalışma ortamı: Wasm modülleri sanal makinede çalışır ve çeşitli dillere derlenebilir. Bu, serverless ortamlarda performans artışına katkı sağlayabilir.

Wasm'ın trade-off'ları

  • Thread'ler ve JIT derleme: Wasm, thread'leri varsayılan olarak desteklemez ve JIT derleme mümkün değildir. Bu durum performansı etkileyebilir.
  • Bellek arayüzü: Wasm modülü ile host arasındaki veri taşınması kopyalama gerektirebilir ve bu da performansı etkileyebilir.

Gelecek perspektifi

  • Wasm'ın gelişimi: Wasm çalışma ortamları ve geliştirme araçları ilerledikçe, scripting dilleri Wasm runtime'larına sahip olacak. Bu, uygulamaların çalışma hızını büyük ölçüde artırabilir.
  • Edge computing: Wasm, edge computing aracılığıyla hesaplamanın kullanıcıya yakın yerde yapılmasını mümkün kılar ve bu da performansı artırır.

# GN⁺ özeti

  • Wasm, web uygulaması modelinde yeni bir değişime öncülük ediyor ve bu sayede yüksek performanslı uygulamalar kolayca kurulup sürdürülebiliyor.
  • Serverless bilişim ile Wasm'ın birleşimi, sunucu yönetiminin karmaşıklığını azaltırken istek hacmine göre hızlı ölçeklenme avantajı sağlıyor.
  • Wasm yalnızca tarayıcıda değil, sunucuda da çalışabiliyor ve bu da sunucu tarafı uygulamalar için daha hafif bir izolasyon modeli sunuyor.
  • Wasm'ın gelişimi, scripting dillerinin Wasm runtime'larına sahip olmasını sağlayarak uygulamaların çalışma hızını büyük ölçüde artırabilir.
  • Edge computing sayesinde hesaplama kullanıcıya yakın yerde yapılabilir ve bu da performansı artırır.

1 yorum

 
GN⁺ 2024-10-11
Hacker News görüşü
  • Amazon, Lambda ile sunucusuz bilişim çağını başlattı. Google App Engine ise Lambda'dan 6 yıl önce piyasaya çıktı.

  • WASM ile Java Applets, ActiveX, Silverlight, Macromedia Flash gibi önceki teknolojiler arasındaki farkı anlamak zor. Web tarayıcısında güvenilmeyen üçüncü taraf derlenmiş kodunu çalıştırma konusunda ders aldığımızı sanıyordum.

  • JIT derleme, güvenlik gerekçeleriyle dinamik WASM kodu üretimine izin verilmediği için mümkün değil. Bu, kod hot reload gibi işleri düzgün yapabilmek için gerekli temel bir özellik.

  • Güvenlik iddialarını inandırıcı bulmuyorum. Çalışma zamanında JS hot reload ya da kod üretimi yapılabiliyor ve WASM çalışma zamanı dinamik olarak yeniden yüklenip bellek korunabiliyor, ama kullanıcı deneyimi kötü olur.

  • Bunun teknik olarak neden imkansız olduğunu bulamadım. Eğer bu bir güvenlik önlemiyse, kolayca aşılabilir olurdu.

  • WASM bytecode'u, .NET IL, Java bytecode vb. gibi JIT derleme için tasarlanmış şeylerle kavramsal olarak benzer.

  • WASM projesinin net bir yönü ve başarı konusunda güçlü bir iradesi olmadığını düşünüyorum. Temel özellikler hâlâ eksik.

    • Buna hot reload, hilesiz threading, DOM ile native arayüz, düşük ek yükle grafik/hesaplama API desteği, düşük seviyeli ses erişimi dahil.
  • WASM, belirli bir dilin VM'ini genel amaçlı bir VM ile değiştiriyor. Bu da derleyici veya yorumlayıcıyla neredeyse her şeyi çalıştırabilmek anlamına geliyor.

    • Genelde JavaScript motorunun bir parçası olarak uygulanıyor; bu yüzden sandboxing ve API erişimini ondan devralıyor. Standardizasyon hâlâ sürüyor.
  • WASM; JavaScript'in yerine, Docker'ın yerine, Java'nın yerine, CGI'ın yerine gelecek şey gibi konumlandırılıyor. Yani her şey olmaya çalışıyor.

  • WASM'in, PHP uygulamaları gibi kolayca barındırılıp dağıtılabilmesi gerektiğini düşünüyorum. Muhtemelen henüz o noktada değil.

  • Yazılımın eski bir kuralını hatırlatıyor: Yeterince büyük ve eski her uygulama, eninde sonunda çalıştığı tüm yazılım yığınını yeniden uygular.

  • Sunucu tarafı WASM'in büyük vaadi, düzenli güncelleme gerektirmeyen kalıcı bir platform sunması.

    • Node.js ya da Python sürümü artık desteklenmediğinde AWS Lambda uygulamalarını her seferinde güncellemek ve yeniden dağıtmak büyük bir sorun.
  • Geleceğin local-first olduğunu düşünüyorum. Uygulamalar ağırlıklı olarak kullanıcının tarayıcısında çalışmalı ve sunucudan çok az yardım almalı.

    • Figma, Linear, Superhuman gibi uygulamalar bu modeli başarıyla kullanıyor.
  • WASM, kullanıcının tarayıcısında başarılı olabilir. Microsoft bunu C#/Blazor için kullanıyor.

  • Sanki JVM'i ve onun ekosistemini yeniden icat ediyoruz.

  • WASM'in bulutta lambda fonksiyonu çalıştıran kodun yerini alma yönünde ilerleyeceğini düşünüyorum.

    • WASM geleneksel olarak host platformda çalışan bir şey olarak görülse de, bunun böyle olması şart değil.

    • WASM'in sandbox özellikleri sayesinde işletim sisteminin dışında ya da ring0'da çalıştırılabilir.