बहुत सारी परिपक्व भाषाओं को एक विनिर्देश द्वारा परिभाषित किया गया है, और संकलक या दुभाषिए उस विनिर्देश में परिभाषित मानक का पालन करने का प्रयास करते हैं। लेकिन बहुत कम ही वे सफल होते हैं, जब तक कि मानक भाषा के लेखक द्वारा परिभाषित नहीं किया जाता है।
आप C ++ 2003 मानक , C # 4 विनिर्देश , जावा 7 विनिर्देश और कई और अधिक ऑनलाइन पा सकते हैं। इनमें से कई में ECMA या ISO मानकीकरण संख्या है। ये केवल ऐसे संगठन हैं जिनके साथ आप एक मानक पंजीकृत कर सकते हैं और इसे अधिक आधिकारिक बना सकते हैं।
रूबी ने ऐतिहासिक रूप से चीजों को थोड़ा अलग तरीके से किया है, जिसमें विनिर्देशन के रूप में परीक्षणों का एक निष्पादन योग्य सेट है । इसलिए, यदि आप एक दुभाषिया लिखना चाहते हैं और इसे मानक रूबी कहते हैं, तो आपको बस एक दुभाषिया बनाना होगा जो उन सभी परीक्षणों से गुजरे। लेकिन रूबी के अंततः एक अधिक औपचारिक विनिर्देश बनने की संभावना है ।
जावास्क्रिप्ट अलग नहीं है, संभवतः इसके अलावा जिस तरह से यह विकसित हुआ है।
जावास्क्रिप्ट को सबसे पहले नेटस्केप द्वारा बनाया गया था। उन्होंने इसे लाइवस्क्रिप्ट कहा, लेकिन यह जावा के समान दिख रहा था और उन्होंने सूर्य के साथ नाम पर एक सौदे में कटौती की, जिससे नेटस्केप और जावा दोनों के विपणन में लाभ हुआ। Microsoft के पास VBScript था और (संभवतः अनुमान लगाने के लिए खो जाने के कारण) मूल रूप से जावास्क्रिप्ट कॉपी किया गया था, लेकिन नाम सूर्य के स्वामित्व में था, इसलिए उन्होंने इसे संक्षेप में JScript कहा।
लेकिन JScript, वाक्य रचना में जावास्क्रिप्ट के समान होने के बावजूद, COM का बहुत उपयोग किया है - उदाहरण के लिए, IE5 और 6 एक XMLHttpRequest ऑब्जेक्ट का उपयोग करके तुरंत new ActiveXObject("Microsoft.XMLHTTP");
।
और इसलिए, जावास्क्रिप्ट के समान, समान, लेकिन अलग-अलग "बोलियों" का भी जन्म हुआ। समय के साथ, IE की तुलना में कम बाजार में हिस्सेदारी वाले ब्राउज़रों के विभिन्न समूहों ने भाषा को मानकीकृत करने की कोशिश की है, और वर्षों तक Microsoft ने विरोध किया। V8 तक।
V8 तेज था। इसने एक नया बाजार मानक तय किया। इसने बाकी सभी चीजों को खराब कर दिया।
और, Microsoft के खिलाफ विभिन्न विरोधी मामलों के माध्यम से, IE बाजार में हिस्सेदारी खो रहा था। मानकीकरण का समर्थन करने के लिए अचानक यह Microsoft के हित में था। हम अभी तक वहां नहीं हैं, लेकिन यह सही रास्ते पर है।
इस बीच, V8 खुला-स्रोत था, जिसने लोगों को एक तेज जावास्क्रिप्ट पार्सर जैसे Node.JS के लिए नए उपयोग शुरू करने की अनुमति दी ।
लेकिन, अपने सवाल पर वापस जाने के लिए: जावास्क्रिप्ट क्या है? यह ECMAScript के लिए सामान्य (और मूल) नाम है, आमतौर पर एक प्रोटोटाइप भाषा के लिए एक विनिर्देश है , लेकिन विशेष रूप से उपयोग नहीं किया जाता है, जो एक ब्रोसवर् में डोमेन ऑब्जेक्ट मॉडल को नेविगेट और हेरफेर करने के लिए उपयोग किया जाता है।
ECMA-262 केवल मानक परिभाषा है, जैसे ECMA-334 C # के लिए मानक परिभाषा है। ईसीएमएस्क्रिप्ट केवल एक ही नाम था, जिसे सभी इच्छुक पार्टियां '99 में वापस ले सकती थीं, जब ईसीएमए -262 लिखा गया था।