आपने पहले ही बताया कि यह क्या है । उपयोग यह है कि यह एक निम्न-स्तरीय भाषा है जो सभी ब्राउज़रों में काम करती है, कुछ में बहुत तेज है और कुछ में बहुत तेज है। आप जो बनाते हैं, वह उतना ही खुला होता है जितना आप किसी अन्य प्रोग्रामिंग भाषा के साथ करते हैं।
मोज़िला का उपयोग मामला सबसे अधिक उत्सुक है। यह पहले से ही एलवीवीएम के माध्यम से जावास्क्रिप्ट में LLVM बैकेंड (सबसे प्रमुख रूप से C और C ++) के साथ भाषाओं के संकलन के तरीके हैं। asm.js, जो पहले से ही उत्सर्जित होता है, के बहुत करीब है, इसलिए यह Emscripten कोड (जो कि आज के जावास्क्रिप्ट JIT कंपाइलर्स पर प्रभावशाली रूप से तेज है) को और भी तेजी से बनने देता है, जिससे मौजूदा कोड बेस को वेब पर पोर्ट करने का लक्ष्य है। फिर, आप वास्तव में इसके लिए क्या उपयोग करते हैं यह आपका निर्णय है। पोर्टिंग गेम एक उपयोग के मामले हैं (जो कि मोज़िला जाहिरा तौर पर सक्रिय रूप से शामिल है), लेकिन सी और सी ++ में अनगिनत चीजें लिखी गई हैं, जिनमें से कुछ किसी की वेब साइट के लिए काम आ सकती हैं। कुछ मैंने देखा है (साथ ही मेरे अपने कुछ भटकते हुए), व्यवहार्यता के बारे में कोई गारंटी नहीं है:
- एक नया वेब मानक बनाने के लिए और इसे लागू करने के लिए अलग-अलग ब्राउज़रों पर निर्भर करते हुए जावास्क्रिप्ट / वेबसाइटों को और अधिक करने के लिए सामान्य प्रयोजन के एल्गोरिदम (जैसे zlib, libjpeg, Opensl, FFT कार्यान्वयन) को पोर्ट करना।
- पोर्टिंग दुभाषियों, ताकि जावास्क्रिप्ट के अलावा अन्य भाषाएँ ब्राउज़र में चल सकें, कम ओवरहेड और न्यूनतम पोर्टिंग प्रयास के साथ।
- अधिक संकलक के लिए बैकएंड के रूप में asm.js का उपयोग करना, विशेष रूप से जो जावास्क्रिप्ट के लिए अच्छी तरह से मैप नहीं करते हैं और इसकी अधिकांश विशेषताओं और ओवरहेड की आवश्यकता नहीं है। एक उदाहरण कोई स्मृति आवंटन के साथ तेजी से संख्यात्मक कार्य के लिए डिज़ाइन की गई भाषा हो सकती है।
- जावास्क्रिप्ट में JIT बनाने के लिए asm.js का उपयोग करना। यह किसी भी भाषा को लागू कर सकता है - उदाहरण के लिए ActionScript ।
- एक ही नस में, मौजूदा जेआईटी संकलक को ब्राउज़र में चलाने के लिए (cf. पोर्टिंग दुभाषियों के साथ, जेएस पर प्रभावी रूप से ओवरहेड) के साथ पोर्ट करना। यह शायद केवल संभव है जब जेआईटी संकलक स्वचालित रूप से उत्पन्न होते हैं, जैसे कि PyPy के साथ।