दो दशकों से अधिक समय तक, जावास्क्रिप्ट एकमात्र ऐसी प्रोग्रामिंग भाषा थी जो ब्राउज़रों में चल सकती थी। अन्य भाषाएँ जैसे पायथन, सी ++ और गो मुख्य रूप से वेब एप्लिकेशन और सेवाओं के सर्वर साइड के निर्माण के लिए थीं।
जावास्क्रिप्ट ने बहुत अच्छा प्रदर्शन किया, लेकिन कई अन्य प्रोग्रामिंग भाषाएँ तेज हैं। ऐसे कई लाभ हैं जिनका वेब ऐप्स अन्य, अधिक प्रदर्शन करने वाली प्रोग्रामिंग भाषाओं को सीधे ब्राउज़र में चलाकर लाभ उठा सकते हैं।
WebAssembly एक कुशल, खुला और सुरक्षित विकल्प प्रदान करता है जो खुले वेब प्लेटफॉर्म का हिस्सा है। आप इसका उपयोग ब्राउज़रों, सर्वरों और अन्य परिवेशों में चलने वाले एप्लिकेशन बनाने के लिए कर सकते हैं।
WebAssembly का परिचय
WebAssembly (WASM) एक कुशल, निम्न-स्तरीय, पोर्टेबल W3C-मानकीकृत भाषा है। यह वेब पर प्लेटफॉर्म के साथ इंटरैक्ट करने के लिए प्रोग्राम के लिए एक कोड प्रारूप और इंटरफेस को परिभाषित करता है।
आप अधिकांश प्रोग्रामिंग भाषाओं को WebAssembly के बाइनरी कोड फॉर्मेट में संकलित कर सकते हैं। ब्राउज़र परिणामी WASM कोड की व्याख्या कर सकते हैं और ठीक वैसे ही चला सकते हैं जैसे वे नियमित JavaScript के साथ करते हैं। आप उच्च ऐप प्रदर्शन और दोनों के बीच इंटरऑपरेबिलिटी के लिए JavaScript कोड के साथ-साथ WebAssembly भी चला सकते हैं।
कई प्रोग्रामिंग भाषाओं में समर्थन के साथ, WebAssembly 2019 में W3C मानक बन गया। के अनुसार WebAssembly के साथ बनाया गया, पहले से ही कई लोकप्रिय प्रोजेक्ट हैं जो अपने उपयोगकर्ताओं को तेज़, सुरक्षित सॉफ़्टवेयर भेजने के लिए WebAssembly का उपयोग करते हैं।
बहुत सी प्रोग्रामिंग भाषाएं, जिनमें वे भी शामिल हैं जो सर्वर-साइड विशिष्ट हैं, WebAssembly का समर्थन करती हैं। इनमें रस्ट, गो, पायथन, सी ++, टाइपस्क्रिप्ट, जावा, पीएचपी और रूबी शामिल हैं। इसकी जाँच पड़ताल करो भयानक-wasm-langs संसाधन WebAssembly समर्थित भाषाओं और उन पैकेजों के बारे में जानने के लिए जिनका आप उनके साथ उपयोग कर सकते हैं।
यहाँ एक उदाहरण है ट्यूटोरियल प्वाइंट से WebAssembly कार्यक्रम जो अधिकतम दो पूर्णांक लौटाता है:
WebAssembly सिंटैक्स जावास्क्रिप्ट की तुलना में अपेक्षाकृत क्रियात्मक है, लेकिन यह कोई समस्या नहीं होनी चाहिए। आपको सिंटैक्स सीखने की आवश्यकता नहीं होगी क्योंकि WebAssembly उन कार्यक्रमों का संकलन लक्ष्य होगा जिन्हें आप अपनी पसंदीदा भाषा में लिखते हैं।
वेब असेंबली कैसे काम करती है
WASM अन्य प्रोग्रामिंग भाषाओं में ट्रांसपाइल करने के लिए एक संकलन लक्ष्य के रूप में मौजूद है। में लिख सकते हैं आपकी पसंदीदा प्रोग्रामिंग भाषा और स्रोत कोड को क्लाइंट पर चलने वाले WASM बायटेकोड में संकलित करें। इसे देशी मशीन कोड में अनुवादित करने का मतलब है कि यह उच्च गति से चल सकता है, आमतौर पर जावास्क्रिप्ट से तेज।
WASM की महत्वपूर्ण विशेषताओं में से एक जावास्क्रिप्ट इंटरऑपरेबिलिटी है। आप WASM मॉड्यूल को एक वेब एप्लिकेशन में आयात कर सकते हैं और WASM फ़ंक्शंस को जावास्क्रिप्ट कोड में उपयोग के लिए उजागर कर सकते हैं। उच्च प्रदर्शन के लिए जावास्क्रिप्ट फ्रेमवर्क WASM का लाभ उठा सकते हैं।
WASM जावास्क्रिप्ट के समान सैंडबॉक्स निष्पादन मॉडल का उपयोग करता है। WASM ABIs (एप्लिकेशन बाइनरी इंटरफ़ेस) जैसे होस्ट मशीन के साथ इंटरैक्ट करता है WebAssembly सिस्टम इंटरफ़ेस जो प्रोग्राम की आवश्यकताओं के आधार पर संसाधनों और अन्य सिस्टम सेवाओं तक पहुँच प्रदान करता है।
क्रोम, माइक्रोसॉफ्ट एज, मोज़िला फ़ायरफ़ॉक्स, ओपेरा और सफारी समेत कई आधुनिक ब्राउज़र डब्ल्यूएएसएम का समर्थन करते हैं। गो और जैसी भाषाएँ जंग समर्थन WASM अलग सोच।
वेब को WebAssembly की आवश्यकता क्यों है
जावास्क्रिप्ट की डिज़ाइन द्वारा सीमित कार्यक्षमता है। यह में से एक नहीं है सबसे तेज़ या सबसे अधिक प्रदर्शन करने वाली भाषाएँ चूंकि यह वेब के लिए एक स्क्रिप्टिंग भाषा के रूप में शुरू हुआ था। हालाँकि ऐसे कई रनटाइम हैं जहाँ जावास्क्रिप्ट अलग-अलग गति से चलता है, वहाँ तेज़ और अधिक हैं प्रदर्शनकारी भाषाएँ जो WebAssembly गेमिंग, वीडियो और जैसे उपयोग मामलों के लिए वेब पर ला सकती हैं संगीत।
WebAssembly उन भाषाओं के लिए अधिक पोर्टेबिलिटी और लचीलापन भी प्रदान करता है जो वेब पर नहीं चलती हैं। वेब (सबसे लोकप्रिय ओपन-सोर्स प्लेटफॉर्म) पर अधिक भाषाओं को पेश करने से समग्र रूप से बेहतर अनुभव होना चाहिए।
WebAssembly दत्तक ग्रहण तेजी से हो रहा है
कई कंपनियां और डेवलपर WebAssembly के साथ एप्लिकेशन बना रहे हैं। Google, ड्रॉपबॉक्स और क्लाउडफ्लेयर अपने कुछ अनुप्रयोगों में WebAssembly का सक्रिय रूप से उपयोग करते हैं।
WebAssembly Python, C++ और Rust Developers के बीच लोकप्रिय है। पायथन डेवलपर्स आमतौर पर Pyoidide और PyScript, C++ Developers और Emscripten, और Rust Developers के साथ Percy, Yew, Sycamore, MoonZoon और Seed Framework का उपयोग करते हैं।