WebAssembly पर ध्यान देने की वजह
(harshal.sheth.io)- WebAssembly(WASM) का परिचय, आज इसका उपयोग कहाँ हो रहा है, और आगे किन क्षेत्रों में इसके इस्तेमाल की संभावना है, इसका अनुमान
WASM की विशेषताएँ
-
पोर्टेबल: standardized bytecode के रूप में browser/server कहीं भी चल सकता है
-
यूनिवर्सल: C, Rust, Go, Python, Ruby जैसी कई भाषाएँ Wasm में compile हो सकती हैं
-
native-स्तर की performance: औसतन native से 1.45~1.55 गुना धीमा, लेकिन JavaScript से हमेशा तेज़
-
तेज़ startup time: Docker container से 10~100x तेज़, और browser में भी JavaScript parsing/interpreting से तेज़
-
सुरक्षित: web को ध्यान में रखकर विकसित किया गया, इसलिए memory sandboxing और capability restrictions आदि के जरिए सुरक्षित
वे क्षेत्र जहाँ WASM उपयोगी है
-
JavaScript की speed में सुधार
-
programming languages के बीच interoperability प्रदान करना
-
multi-language plugin system के लिए runtime
-
embedded sandboxing engine के रूप में विभिन्न third-party libraries को सुरक्षित तरीके से लाकर उपयोग करना
-
containerization का भविष्य: Docker से तेज़, छोटा footprint और अधिक सुरक्षित
-
FaaS/Serverless platform
-
blockchain: smart contract execution के लिए high-performance runtime के रूप में उपयोग संभव
अनुमान और अवसर
- नया application architecture
→ microservices को और छोटे components में विभाजित किया जा सकता है
- Brownfield Deployment
→ orchestration layer में Docker और Wasm containers का integration
- standardized Serverless/Edge Framework
→ अभी Fastly, Lambda, Fission आदि अपने-अपने platform बना रहे हैं, लेकिन standardize होने की संभावना भी है
→ "Terraform of Serverless"
- Package Management
→ सभी भाषाओं के पास अपना package ecosystem होता है
→ WASM को package manager की ज़रूरत है. WAPM मौजूद है, लेकिन लगभग निष्क्रिय स्थिति में है
निष्कर्ष
- WebAssembly इतना अच्छा है, फिर भी इसका उपयोग और व्यापक क्यों नहीं है?
→ marketing अच्छा नहीं रहा. यह सिर्फ Web या Assembly तक सीमित नहीं है, इसलिए नाम से ही समस्या शुरू होती है
→ marketing ज़्यादातर web developers को ध्यान में रखकर की गई, लेकिन इसकी वास्तविक क्षमता browser से कहीं आगे जाती है
→ WebAssembly standard अभी मौजूद नहीं है
→ languages के बीच interoperability अभी बहुत कमज़ोर है
→ developer experience में अभी काफी कमी है
-
लेकिन इन में से कई चीज़ें सुधर रही हैं, और 1~2 साल के भीतर यह स्वीकार्य स्तर तक पहुँच सकती हैं
-
WebAssembly से जुड़ी गतिविधियाँ, ecosystem और community अब विस्फोटक वृद्धि के दौर में प्रवेश कर चुके हैं
1 टिप्पणियां
GeekNews में WebAssembly/WASM से खोजकर देखें तो आपको बहुत बड़ी संख्या में लेख मिलेंगे.
मैं सिर्फ प्रमुख लेखों की सूची दे रहा हूँ.
WebAssembly को W3C recommendation के रूप में आधिकारिक घोषणा https://hi.news.hada.io/topic?id=1091
क्या WebAssembly browser के बाहर तक विस्तार कर पाएगा? Bytecode Alliance उभर रहा है https://hi.news.hada.io/topic?id=901
MS/Google/Arm आदि Bytecode Alliance में शामिल हुए https://hi.news.hada.io/topic?id=4172
→ WebAssembly को browser से आगे इस्तेमाल करने के लक्ष्य से बनाया गया non-profit organization
2020 और उसके बाद JavaScript के रुझान - WebAssembly https://hi.news.hada.io/topic?id=2778
WebAssembly JavaScript को तेज़ी से कैसे चला सकता है https://hi.news.hada.io/topic?id=5167
Amazon Prime Video ने WebAssembly का उपयोग कर 8000 device types को support किया https://hi.news.hada.io/topic?id=5858
WebAssembly network proxy में नई extensibility लाता है https://hi.news.hada.io/topic?id=1722
Wasmer 1.0 रिलीज़ https://hi.news.hada.io/topic?id=3540
WebVM, browser में चलने वाली serverless x86 virtual machine https://hi.news.hada.io/topic?id=5893