जावास्क्रिप्ट के साथ समस्या स्वयं भाषा नहीं है - यह पूरी तरह से अच्छी प्रोटोटाइप और गतिशील भाषा है। यदि आप एक OO बैकग्राउंड से आते हैं तो सीखने की अवस्था थोड़ी है, लेकिन यह भाषा की गलती नहीं है।
ज्यादातर लोग मानते हैं कि जावास्क्रिप्ट जावा की तरह है क्योंकि इसमें एक समान सिंटैक्स और एक समान नाम है, लेकिन वास्तव में यह लिस्प की तरह बहुत अधिक है। यह वास्तव में बहुत अच्छी तरह से डोम हेरफेर के लिए अनुकूल है।
असली समस्या यह है कि यह ब्राउज़र द्वारा संकलित है, और इसका मतलब है कि यह क्लाइंट के आधार पर बहुत अलग तरीके से काम करता है।
ब्राउज़र के आधार पर न केवल वास्तविक DOM अलग है, बल्कि प्रदर्शन और लेआउट में भारी अंतर है।
प्रश्न में स्पष्टीकरण के बाद संपादित करें
मान लीजिए कि कई व्याख्या की गई भाषाओं का समर्थन किया गया था - आपके पास अभी भी वही समस्याएं हैं। विभिन्न ब्राउज़रों अभी भी छोटी गाड़ी होगी और अलग डोम होंगे।
इसके अलावा आपको प्रत्येक भाषा के लिए ब्राउज़र में निर्मित एक दुभाषिया या किसी तरह प्लग इन के रूप में स्थापित करना होगा (जिसे आप पृष्ठ परोसने से पहले जांच सकते हैं)। जावास्क्रिप्ट को लगातार प्राप्त करने में उम्र लग गई।
आप एक ही तरह से संकलित भाषाओं का उपयोग नहीं कर सकते हैं - फिर आप एक निष्पादन योग्य को शुरू कर रहे हैं जो आसानी से जांच नहीं कर सकता कि यह क्या करता है। उपयोगकर्ताओं के बहुत सारे इसे चलाने नहीं देने का चयन करेंगे।
ठीक है, तो संकलित कोड के लिए किसी प्रकार के सैंडबॉक्स के बारे में क्या? मेरे लिए जावा Applets की तरह लगता है। या फ्लैश में एक्शनस्क्रिप्ट। या सिल्वरलाइट में # सी।
आईएल मानक के कुछ प्रकार के बारे में क्या? जिसमें अधिक क्षमता है। जिस भी भाषा में आप चाहते हैं उसे विकसित करें और फिर इसे IL में संकलित करें, जो कि ब्राउज़र तब JITs।
छोड़कर, जावास्क्रिप्ट पहले से ही है कि आईएल - बस जीडब्ल्यूटी को देखो । यह आपको जावा में प्रोग्राम लिखने देता है, लेकिन उन्हें HTML और JS के रूप में वितरित करता है।
सवाल में आगे स्पष्टीकरण के बाद संपादित करें
जावास्क्रिप्ट, या नहीं था, केवल ब्राउज़र द्वारा समर्थित भाषा: इंटरनेट एक्सप्लोरर अंधेरे युग में वापस आप IE में चलाने के लिए जावास्क्रिप्ट या VBScript के बीच चयन कर सकते हैं। तकनीकी रूप से IE ने जावास्क्रिप्ट भी नहीं चलाया था - यह JScript चलाता था (मुख्य रूप से जावा शब्द के लिए सूर्य का भुगतान करने से बचने के लिए , Oracle अभी भी जावास्क्रिप्ट का नाम है )।
समस्या यह थी कि VBScript Microsoft के लिए स्वामित्व था, लेकिन यह भी कि यह अभी बहुत अच्छा नहीं था। जब जावास्क्रिप्ट कार्यशीलता जोड़ रहा था और अन्य ब्राउज़रों (जैसे FireBug) में टॉप रेट डिबगिंग टूल प्राप्त कर रहा था, VBScript IE-only और बहुत अधिक संयुक्त राष्ट्र-डीबगेबल रहा (IE4 / 5/6 में देव उपकरण मौजूद नहीं थे)। इस बीच VBScript का विस्तार OS में एक बहुत ही शक्तिशाली स्क्रिप्टिंग टूल के रूप में हो गया, लेकिन उनमें से कोई भी सुविधा ब्राउज़र में उपलब्ध नहीं थी (और जब वे बड़े पैमाने पर सुरक्षा छेद बन गए थे)।
अभी भी कुछ कॉर्पोरेट आंतरिक अनुप्रयोग हैं जो VBScript का उपयोग करते हैं (और कुछ उन सुरक्षा छेदों पर भरोसा करते हैं), और वे अभी भी IE7 चला रहे हैं (उन्होंने केवल IE6 को रोक दिया क्योंकि MS ने अंत में इसे मार दिया)।
वर्तमान स्थिति के लिए जावास्क्रिप्ट प्राप्त करना एक बुरा सपना रहा है और 20 साल लग गए हैं। यह अभी भी लगातार समर्थन नहीं करता है, भाषा सुविधाओं के साथ (1999 में निर्दिष्ट) अभी भी कुछ ब्राउज़रों से गायब है और बहुत सारे शम्स की आवश्यकता है।
ब्राउज़र में व्याख्या करने के लिए एक वैकल्पिक भाषा जोड़ने से दो बड़ी समस्याओं का सामना करना पड़ता है:
सभी ब्राउज़र विक्रेताओं को नई भाषा मानक लागू करने के लिए - कुछ वे अभी भी 20 वर्षों में जावास्क्रिप्ट के लिए प्रबंधित नहीं किए गए हैं।
एक दूसरी भाषा संभावित रूप से आपके पास पहले से मौजूद समर्थन को पतला करती है, उदाहरण के लिए (IE) IE को दूसरी दर जावास्क्रिप्ट समर्थन करने के लिए लेकिन महान VBScript (फिर से)। मैं वास्तव में विभिन्न ब्राउज़रों के लिए विभिन्न भाषाओं में कोड लिखना नहीं चाहता।
यह ध्यान दिया जाना चाहिए कि जावास्क्रिप्ट 'समाप्त' नहीं है - यह अभी भी नए ब्राउज़रों में बेहतर बनने के लिए विकसित हो रहा है। नवीनतम संस्करण साल 'ब्राउज़रों कार्यान्वयन की से आगे है और वे अगले एक पर काम कर रहे हैं।