Neden WebAssembly'e Dikkat Etmeliyiz
(harshal.sheth.io)- WebAssembly (WASM) tanıtımından başlayarak, bugün nerelerde kullanıldığı ve gelecekte hangi alanlarda kullanılacağına dair öngörüler
WASM'ın özellikleri
-
Taşınabilir: Standartlaştırılmış bytecode ile tarayıcıda/sunucuda her yerde çalışır
-
Evrensel: C, Rust, Go, Python, Ruby gibi çeşitli diller Wasm'a derlenebilir
-
Yerel düzeye yakın performans: Ortalama olarak yerelden 1.45~1.55 kat daha yavaştır, ancak JavaScript'ten her zaman daha hızlıdır
-
Hızlı başlangıç süresi: Docker konteynerlerinden 10~100x daha hızlıdır ve tarayıcıda da Javascript parse etme/yorumlamadan daha hızlıdır
-
Güvenli: Web düşünülerek geliştirildiği için bellek sandboxing'i ve işlev kısıtlamaları gibi yöntemlerle güvenlidir
WASM'ın faydalı olduğu alanlar
-
JavaScript hızını artırma
-
Programlama dilleri arasında karşılıklı uyumluluk sağlama
-
Çok dilli eklenti sistemleri için runtime
-
Gömülü sandboxing motoru olarak çeşitli üçüncü taraf kütüphaneleri güvenli biçimde içe alıp kullanma
-
Containerization'ın geleceği: Docker'dan daha hızlı, daha küçük ayak izi ve daha güvenli
-
FaaS/Serverless platformları
-
Blokzincir: Akıllı sözleşmeleri çalıştırmak için yüksek performanslı bir runtime olarak kullanılabilir
Öngörüler ve fırsatlar
- Yeni uygulama mimarisi
→ Mikroservisler daha küçük bileşenlere ayrılabilir
- Brownfield deployment
→ Orkestrasyon katmanında Docker ve Wasm konteynerlerinin entegrasyonu
- Standartlaştırılmış Serverless/Edge framework'ü
→ Bugün Fastly, Lambda, Fission gibi platformlar kendi altyapılarını kuruyor, ancak bunun standartlaşma ihtimali de var
→ "Serverless'in Terraform'u"
- Paket yönetimi
→ Tüm dillerin bir paket ekosistemi vardır
→ WASM için bir paket yöneticisi gerekir. WAPM var ama neredeyse atıl durumda
Sonuç
- WebAssembly bu kadar iyiyse neden daha yaygın kullanılmıyor?
→ Pazarlaması iyi değil. Web ya da Assembly ile sınırlı olmadığı için ismi baştan sorunlu
→ Pazarlama çoğunlukla web geliştiricilerine yapıldı, ancak gerçek potansiyeli tarayıcının ötesine geçiyor
→ WebAssembly standardı henüz yok
→ Diller arası karşılıklı uyumluluk hâlâ çok zayıf
→ Geliştirici deneyimi büyük ölçüde yetersiz
-
Ancak birçok alanda iyileştirme sürüyor ve 1~2 yıl içinde kabul edilebilir bir seviyeye ulaşacak
-
WebAssembly ile ilgili faaliyetler, ekosistem ve topluluk patlama dönemine girmiş durumda
1 yorum
GeekNews'te WebAssembly/WASM diye aratsanız bile çok sayıda yazı görebilirsiniz.
Sadece başlıca haberleri sıralayayım.
WebAssembly, W3C tavsiye standardı olarak resmen duyuruldu https://tr.news.hada.io/topic?id=1091
WebAssembly, tarayıcı dışına genişleyebilir mi? Bytecode Alliance yükseliyor https://tr.news.hada.io/topic?id=901
MS/Google/Arm gibi şirketler Bytecode Alliance'a katıldı https://tr.news.hada.io/topic?id=4172
→ WebAssembly'nin tarayıcının ötesinde kullanılmasını hedefleyen, bunun için kurulmuş kâr amacı gütmeyen bir organizasyon
2020'de ve sonrasında JavaScript eğilimleri - WebAssembly https://tr.news.hada.io/topic?id=2778
WebAssembly, JavaScript'i nasıl daha hızlı çalıştırabiliyor? https://tr.news.hada.io/topic?id=5167
Amazon Prime Video, WebAssembly kullanarak 8000 cihaz tipini destekliyor https://tr.news.hada.io/topic?id=5858
WebAssembly, ağ proxy'lerine yeni bir genişletilebilirlik kazandırıyor https://tr.news.hada.io/topic?id=1722
Wasmer 1.0 yayımlandı https://tr.news.hada.io/topic?id=3540
WebVM, tarayıcıda çalışan sunucusuz x86 sanal makinesi https://tr.news.hada.io/topic?id=5893