
The End of JS
Audio Summary
AI Summary
एक पसंदीदा कॉन्फ्रेंस टॉक है "द बर्थ एंड डेथ ऑफ जावास्क्रिप्ट"। यह गैरी बर्नहार्ड्ट द्वारा 2014 में दी गई थी। आज के समय में, हम बहुत अधिक सॉफ्टवेयर बना रहे हैं, जो एक तरह से "डिस्ट्रॉइंग ऑल सॉफ्टवेयर" के नाम को सार्थक करता है।
ASM, या असेंबलीस्क्रिप्ट, जावास्क्रिप्ट का एक रूप है जहाँ प्रत्येक ऑपरेशन के लिए आपको उसके प्रकार को लागू करना होता है। उदाहरण के लिए, एक 'स्क्वायर' फ़ंक्शन में, आप इनपुट 'x' को एक संख्या में परिवर्तित करते हैं, फिर 'x' को 'x' से गुणा करते हैं, और परिणाम को फिर से संख्या में परिवर्तित करते हैं। इसी तरह, 'डायगोनल' फ़ंक्शन में 'x' और 'y' दोनों को संख्याओं में परिवर्तित किया जाता है, उन्हें वर्ग किया जाता है, और फिर परिणाम को एक संख्या के रूप में लौटाया जाता है।
यह देखने में अक्षम लग सकता है, लेकिन इसका विचार यह है कि JIT (जस्ट-इन-टाइम) कंपाइलर इसे पढ़कर समझ सकता है कि यह एक संख्या ऑपरेशन है, और इसे एक साधारण 'मल्टीप्लाई' ऑपरेशन में बदल सकता है, जो एक सिंगल इंस्ट्रक्शन के रूप में काम करता है।
ASM के इस दौर में, एपिक गेम्स और अनरियल टूर्नामेंट (अनरियल इंजन 3) जैसे हाई-एंड गेम्स को फ़ायरफ़ॉक्स के अंदर चलाया गया था। यह उस समय काफी रोमांचक था क्योंकि इसका मतलब था कि जावास्क्रिप्ट लिखने की आवश्यकता नहीं थी। आप किसी भी भाषा में कोड लिख सकते थे, उसे कंपाइल करके ब्राउज़र में चला सकते थे। हालांकि, इसमें कुछ चुनौतियाँ थीं, जैसे 3-मेगाबाइट के बंडल, जो उस समय के धीमे इंटरनेट और कम शक्तिशाली कंप्यूटरों के लिए एक समस्या थे। V8 के अंदर के VMs भी आज जितने अच्छे नहीं थे।
गैरी के टॉक का मुख्य बिंदु यह था कि एक ऐसी तकनीक मौजूद है जहाँ आपको जावास्क्रिप्ट लिखने की ज़रूरत नहीं है, लेकिन यह जावास्क्रिप्ट द्वारा ही संचालित होती है। जावास्क्रिप्ट ASM के माध्यम से जावास्क्रिप्ट को ही खत्म कर देगी। उस समय WASM (वेबअसेंबली) जैसी कोई चीज़ नहीं थी, इसलिए यह पूरी तरह से ASM पर आधारित था। गैरी ने यह साबित किया कि यदि कोई चीज़ 'C' में संकलित हो सकती है, तो उसे ब्राउज़र में भी चलाया जा सकता है। उनका मूल विचार यह था कि भविष्य में सब कुछ ASM में संकलित होकर ब्राउज़र में चलेगा।
हालांकि, गैरी ने एक बड़ी भविष्यवाणी की थी। WASM अब वेब डेवलपमेंट में अपनी जगह बना रहा है। क्लाउडफ्लेयर वर्कर्स WASM का उपयोग कर सकते हैं, जिसका अर्थ है कि आप रस्ट, C, गो, या पायथन जैसी भाषाओं का उपयोग करके वर्कर्स विकसित कर सकते हैं, क्योंकि वे सभी WASM में संकलित हो सकते हैं। फिग्मा जैसे कुछ उल्लेखनीय ऐप्स ने भी WASM का उपयोग किया है।
गैरी की अंतिम भविष्यवाणी "मेटल" के बारे में थी, जहाँ ऑपरेटिंग सिस्टम और रिंग जीरो और रिंग थ्री के बीच कॉल के बजाय, आप कर्नल में एक जावास्क्रिप्ट VM डालते हैं, और सब कुछ VM आइसोलेशन में चलता है, और सब कुछ ASM चलाता है। हर प्रोग्राम ASM में संकलित होता है। यह एक अविश्वसनीय भविष्यवाणी लगती है।
यह टॉक बहुत ही शानदार थी, और इसे देखने की अत्यधिक अनुशंसा की जाती है।