आज ब्राउज़रों में जावास्क्रिप्ट और कुछ VBScript का समर्थन क्यों है? मुझे पता है कि जावास्क्रिप्ट अच्छा है और सभी, लेकिन एक और प्रोग्रामिंग भाषा का उपयोग करने का विकल्प नहीं होगा जो विभिन्न विकास शैलियों को बढ़ावा देने में मदद करता है?
आज ब्राउज़रों में जावास्क्रिप्ट और कुछ VBScript का समर्थन क्यों है? मुझे पता है कि जावास्क्रिप्ट अच्छा है और सभी, लेकिन एक और प्रोग्रामिंग भाषा का उपयोग करने का विकल्प नहीं होगा जो विभिन्न विकास शैलियों को बढ़ावा देने में मदद करता है?
जवाबों:
कई भाषाओं के लिए suport जोड़ने की आवश्यकता नहीं है, एक समाधान एक सामान्य बाइटेकोड पर मानकीकृत होगा जो भाषा कार्यान्वयनकर्ताओं द्वारा उपयोग किया जा सकता है। लेकिन वर्तमान में इसके लिए कोई योजना नहीं है (यह सुझाव दिया गया है)।
भाषाओं को जावास्क्रिप्ट के शीर्ष पर भी लागू किया जा सकता है। अन्य भाषाओं को इसके शीर्ष पर लागू करने की अनुमति देने के लिए जावास्क्रिप्ट बहुत अच्छा है। और इसके कई उदाहरण पहले से हैं।
<script type="text/cpp" src="test.cpp"></script>
।
जावास्क्रिप्ट डे-फैक्टो मानक है और 1996 के बाद से है। एक मानक होने के नाते बस इसलिए कि कोई प्रतिस्पर्धा नहीं है बिल्कुल निष्पक्ष नहीं है, लेकिन मैंने इस बारे में बहुत शिकायत नहीं सुनी है कि कोई अन्य भाषा शामिल क्यों नहीं है।
एक और "मानक" भाषा जोड़ना सभी प्रकार के मजेदार छोटे मुद्दों को बढ़ावा देता है।
अकेले जावास्क्रिप्ट के अपने समर्थन के लिए ब्राउज़रों के बीच विसंगतियों के बारे में सोचें। अब सोचिये कि अगर और भाषाएँ होतीं तो कैसा होता।
ब्राउज़रों को मानकीकृत किया जाना है, ताकि आप जो भी विकसित करें, वह सभी ब्राउज़रों पर हर जगह काम करे।
यदि आपके पास कई भाषाएँ हैं, तो आपको यह सुनिश्चित करना होगा कि वे सभी बहुत समान प्रदर्शन करें। यदि आप एक वेब डेवलपर हैं और आपके पास भाषाओं का एक विकल्प है, जो कुछ स्थानों पर समर्थित हो भी सकता है और नहीं भी, तो यह एक अतिरिक्त सिरदर्द है।
जावास्क्रिप्ट एक बहुत ही लचीली भाषा है, यह अत्यावश्यक है, यह कार्यात्मक है, यह ओओपी (प्रोटोटाइप के साथ एक फैशन के बाद) हो सकता है, और इसकी व्याख्या की जाती है। अब क्रोम जैसे सभ्य इंजन के साथ, यह कुछ अच्छा सामान करने में सक्षम है। अतिरिक्त भाषाएं बस चीजों को यहां वापस सेट कर देंगी, VBScript को देखें, केवल IE, और इसलिए इसमें जो कुछ भी लिखा गया है वह एक विशेष ब्राउज़र और प्लेटफॉर्म, दुःस्वप्न से बंधा है।
ब्राउज़रों में इनका निर्माण करने के बजाय, विक्रेता क्लूनी ब्राउज़र प्लग-इन - जावा, फ्लैश, सिल्वरलाइट आदि का निर्माण करना पसंद करते हैं। यह क्रॉस-प्लेटफॉर्म स्थिरता की गारंटी देता है।
कारणों में से एक यह है कि विभिन्न ब्राउज़र विक्रेताओं के लिए मानक जावास्क्रिप्ट कार्यान्वयन पर सहमत होना व्यावहारिक रूप से असंभव है और जावास्क्रिप्ट लगभग हमेशा के लिए एक वेब भाषा के दृष्टिकोण से कम से कम है। इसलिए ज्यादातर लोग सही तरीके से सोचते हैं कि एक और क्लाइंट साइड भाषा को इकोसिस्टम में लाना और सभी विक्रेताओं को इसका समर्थन करना व्यावहारिक रूप से असंभव है और अधिकांश लोग जो इसे संभावित रूप से बना सकते हैं, वे पहले से ही जावास्क्रिप्ट मानकीकरण के मुद्दों में शामिल हैं जो मुझे लगता है कि बहुत बेहतर है उनके समय का उपयोग।
यहां कई प्रतिक्रियाएं हैं जो दावा करती हैं कि कई भाषाओं का समर्थन करने से यह वेब ब्राउज़र के बिल्डरों के लिए बहुत ही कठिन हो जाएगा ताकि यह सुनिश्चित किया जा सके कि वे सभी भाषाओं के अनुरूप हैं। मुझे यह गलत लगता है।
उदाहरण के लिए, जावा एक बहुत अच्छी तरह से परिभाषित मानक है। अनिवार्य रूप से, आपको बस इतना करना है कि ब्राउज़र डोम को जावा एपीआई के रूप में उजागर करना है, और अपने वेब ब्राउज़र के अंदर जावा वर्चुअल मशीन (जेवीएम) को चलाना है। आप निर्दिष्ट कर सकते हैं कि स्क्रिप्टिंग कोड को या तो संकलित और हस्ताक्षरित JAR फ़ाइलों के रूप में, या जावास्क्रिप्ट सोर्सकोड के रूप में वितरित किया जाएगा। यदि ब्राउज़र जावास्क्रिप्ट का सामना करता है, तो यह या तो एक समर्पित दुभाषिया के माध्यम से चला सकता है (जैसा कि यह आज करता है), या जेवीएम के शीर्ष पर राइनो के माध्यम से । यदि यह जार फ़ाइलों का सामना करता है, तो यह एक नया वर्ग लोडर और सुरक्षा सैंडबॉक्स बनाता है, जावा बायटेकोड को मेमोरी में लोड करता है और इसे निष्पादित करता है। यह मौजूदा वेब पेजों के साथ पूरी तरह से बैकवर्ड संगत होगा, और जेवीएम पर चलने वाली दर्जनों भाषाओं का समर्थन करने के लिए ब्राउज़र को एक ही झटके के साथ अनुमति देगा।
अन्य लाभ:
मेरा मानना है कि जावास्क्रिप्ट वेब के लिए मानक भाषा के रूप में और भी अधिक जमीन हासिल करने जा रहा है। हम सर्वर-साइड जावास्क्रिप्ट में वृद्धि देख रहे हैं। यहाँ सर्वर पर इस शक्तिशाली भाषा के कार्यान्वयन के कुछ उदाहरण दिए गए हैं:
POW वेब सर्वर SJS - POW वेब सर्वर के लिए सर्वर साइड जावास्क्रिप्ट, जो फ़ायरफ़ॉक्स एक्सटेंशन के रूप में या एक XULRunner अनुप्रयोग के रूप में चलता है। एसजेएस अपाचे में PHP के समान भूमिका निभाता है जिसमें यह डेटाबेस से जुड़ सकता है और क्लाइंट-साइड सामग्री उत्पन्न कर सकता है।
NodeJS - सर्वर साइड जावास्क्रिप्ट जो एक इवेंट-आधारित मॉडल का उपयोग करता है। यह Google के V8 जावास्क्रिप्ट इंजन का उपयोग करके बनाया गया है । NodeJS को स्केलेबल नेटवर्क प्रोग्राम बनाने के लिए एक उपकरण के रूप में विज्ञापित किया जाता है। एक "हैलो वर्ल्ड" वेब सर्वर केवल 6 छोटी लाइनों में लिखा जा सकता है!
जैक्सर - एक जावास्क्रिप्ट सर्वर जो सभी स्क्रिप्ट ब्लॉकों runat="server"
को सर्वर-साइड जावास्क्रिप्ट के रूप में व्याख्या करता है। संपूर्ण वेब अनुप्रयोग जावास्क्रिप्ट में लिखे जा सकते हैं।
राइनो - जावा के लिए जावास्क्रिप्ट - मोज़िला ने जावा पर चलने वाले इस सर्वर-साइड जावास्क्रिप्ट कार्यान्वयन को बनाया। यह अनिवार्य रूप से Java , Jython, JRuby, और JVM पर चलने वाली अन्य भाषाओं के कई अन्य अमूर्तताओं के लिए Querces PHP की एक समान अवधारणा है । राइनो को आमतौर पर उपयोगकर्ताओं को समाप्त करने के लिए स्क्रिप्टिंग टूल प्रदान करने के लिए जावा में जावास्क्रिप्ट को एम्बेड करने के लिए उपयोग किया जाता है, लेकिन इसका उपयोग क्लाइंट-साइड कोड को सर्वर में स्थानांतरित करने के लिए बिना किसी अन्य भाषा में व्यावसायिक तर्क को फिर से लिखने के लिए भी किया जा सकता है!
JQuery क्लैयूल - सर्वर पर JQuery की शक्ति का उपयोग करते हुए सर्वर-साइड जावास्क्रिप्ट फ्रेमवर्क। बहुत ही शांत! यह एक ब्राउज़र के EnvJs सर्वर-साइड जावास्क्रिप्ट कार्यान्वयन का उपयोग करके विकसित किया गया है।
EnvJs - राइनो के शीर्ष पर बनाया गया एक बिना सिर वाला ब्राउज़र।
इन कार्यान्वयनों और रूपरेखाओं में से कई जो प्रदर्शित करते हैं, वह यह है कि जावास्क्रिप्ट वेब विकास में इतनी शक्तिशाली ताकत बन रही है कि समुदाय के नेताओं ने पहले ही सर्वर पर जावास्क्रिप्ट को स्थानांतरित करना शुरू कर दिया है। जावास्क्रिप्ट एक अत्यंत शक्तिशाली कार्यात्मक प्रोग्रामिंग भाषा है, और जैसे ही मुझे लगता है कि हम इसे विकसित होते देखेंगे।
सारांश में, यह अन्य भाषाओं को ब्राउज़र में पोर्ट करने के लिए एक विरोधाभास की तरह लगता है जब इसके बजाय हम इस एकल ब्राउज़र भाषा को सर्वर पर पोर्ट कर सकते हैं और उस अंतर को अधिक एकीकृत तरीके से पाट सकते हैं।
उपकरणों के कई उदाहरण हैं जो जावास्क्रिप्ट के लिए अन्य भाषाओं को संकलित करेंगे, जिनमें हास्केल, लिस्प और पायथन (संभवतः अन्य) शामिल हैं। इसलिए यदि आप उन भाषाओं में से एक में काम करना चाहते हैं जो आप कर सकते हैं।
और मुझे लगता है कि विश्वविद्यालय के मेरे एक प्रोफेसर ने जावास्क्रिप्ट में एक योजना कार्यान्वयन लिखा था। इसलिए अगर आपको स्कीम पसंद है तो आप ऐसा कर सकते हैं।
लोगों ने बिल्ट-इन वैरायटी की कमी को दो तरह से काम किया है: फ्लैश या जावा एप्लेट जैसे प्लगइन्स का उपयोग करना, और बिल्डिंग लेयर्स जो कि जावास्क्रिप्ट का उपयोग अपने "मशीन कोड" के रूप में करते हैं, जैसे कि jquery या google web toolkit। यदि कोई नई विकास शैली पर्याप्त रूप से लोकप्रिय थी, तो लोग इसे प्राप्त करने का एक तरीका खोज लेंगे।
यदि आप जावास्क्रिप्ट में एक .net रनटाइम बनाते हैं, तो बस जागरूक रहें, और यह कभी भी लोकप्रिय हो जाता है, कुछ निश्चित सर्कल आपके नाम को हमेशा के लिए इंटरनेट पर शाप देंगे।