मैं इस पर एक अपडेट जोड़ने जा रहा हूं क्योंकि मुझे लगता है कि क्लाइंट-साइड वेब पर जेएस का उदय पिछले कुछ वर्षों में कुछ महत्वपूर्ण बिंदुओं पर गलत समझा गया है।
यह अजाक्स नहीं था
मैं यह नहीं कह रहा हूँ कि अजाक्स एक भाषा के रूप में जेएस की समझ के विकास के लिए महत्वपूर्ण नहीं था, लेकिन क्लाइंट-साइड ब्राउज़र के प्रभुत्व के लिए लड़ाई अजाक्स शब्द से पहले ही खत्म हो गई थी।
ऐसा नहीं था क्योंकि यह शहर का एकमात्र खेल था
जावा Applets, Flash और VBScript थे। मैंने सुना है कि 90 के दशक में (लेकिन आवश्यक प्लग-इन IIRC) अन्य स्क्रिप्टिंग विकल्प भी थे। जावा बेहद लोकप्रिय है लेकिन एप्लेट्स एक निराशाजनक विफलता थी। वे बदसूरत और अक्सर सुरक्षा-स्विस-पनीर थे, लेकिन इससे भी महत्वपूर्ण बात यह है कि मुझे नहीं लगता कि जावा उन कारणों के लिए एक अच्छा फिट था जो मैं बाद में जाऊंगा। फ्लैश बहुत लोकप्रिय था और कई वर्षों तक एक मजबूत पैर जमाने वाला था लेकिन तब भी जब फ्लैश में आखिरकार एसईओ विकल्प थे, वे आमतौर पर उपयोग नहीं किए जाते थे, विशेष रूप से फ्लैश साइटों को खोजने के लिए बहुत कठिन था। अब भी, हम में से अधिकांश नियमित रूप से फ्लैश अपडेट करते हैं ताकि हम फिल्में देख सकें लेकिन यह असली एच्लीस हील है। ब्राउज़रों में मालिकाना तकनीक कष्टप्रद है। और निश्चित रूप से वीबी, जो कभी भी आईई के साथ काम करेगा, इसलिए नहीं।
सही समय पर सही जगह प्रासंगिक है लेकिन संपूर्ण उत्तर नहीं है
हां, सवारी करने के लिए वेब तरंग के बिना हमने जावास्क्रिप्ट या भाषा को कभी भी लोकप्रिय उपयोग में नहीं देखा होगा जैसे कि हमने किया था। या शायद हम ...
यह समस्या डोमेन के लिए सही उपकरण होने के नाते समाप्त हुआ
मैं कहता हूँ 2000ish के आसपास हमें निम्नलिखित समस्याएं थीं:
- आईई और नेटस्केप केवल एक ही डोम एपीआई और सीएसएस मानकों में शामिल होकर अच्छा खेलना शुरू करने के लिए सहमत हुए थे और हमें कभी जेएस क्रॉस-ब्राउजर मुद्दों की बकवास-टन से निपटना पड़ा है जिसके बाद से केवल प्रबंधनीय बनना शुरू हो रहा है जेएस डोम पोस्ट IE8 जैसे जेएस डोम सामान्यीकरण उपकरण की सहायता के बिना
- वेब डेवलपर्स / डिजाइनरों की एक पूरी नई पीढ़ी थी, जो प्रोग्रामर के रूप में सभी आवश्यक रूप से हेवीवेट नहीं थे, जब वे अपने गेम पोस्ट-टू-बबल-फट को सुधारने के लिए देख रहे थे, जब उन्होंने आपको कुछ भी नहीं के साथ दरवाजे पर दिखाने के लिए एक अच्छा वेतन सौंपना बंद कर दिया था। मूल HTML-साक्षरता और कुछ फोटोशॉप कौशल से।
- शहर में यह नया सीएसएस बच्चा था जिसने अंततः DHTML, (अधिक उचित रूप से) DOM स्क्रिप्टिंग, (अब अनुचित रूप से) HTML5 (zomghtml5!) के लिए पेचीदा संभावनाओं की पेशकश की।
इसलिए हमें एक ऐसी भाषा की आवश्यकता थी जो दोनों गहरी थी, जो वास्तव में संरचना और वास्तुकार को क्लाइंट-साइड पर पोर्टेबल / फिर से उपयोग करने योग्य घटकों के साथ एक अधिक उन्नत ऐप की क्षमता प्रदान करती है, लेकिन उन लोगों के लिए भी सुलभ है जो बहुत अधिक नहीं जानते थे और बस जरूरत की चीजें जब आप एक बटन पर क्लिक करते हैं तो फिर से दिखाई देना / प्रकट होना।
इसके अलावा, एमएस असंगठित / अक्षम और / या प्रभुत्व-विरोधी-विरोधी-प्रतिस्पर्धी-अभ्यास-स्कीइंग जानवर है जो वे कभी-कभी होते हैं, एक अच्छे ठोस दशक के लिए अपने गैर-अनुपालन डोम एपीआई कार्यान्वयन को वास्तव में छूने में विफल रहे, हालांकि उन्होंने इसका प्रबंधन नहीं किया। IE8 में मूल XHR ऑब्जेक्ट और क्वेरीसेलेक्टर्स जैसी सामयिक चीज़ को जोड़ें।
ध्यान देने वाली महत्वपूर्ण बात यह है कि 2005 के आसपास हम क्रॉस-ब्राउज़र के मुद्दों को संभालने में शामिल जटिलता को पूरी तरह से दफन करने में कामयाब रहे थे कि यह वास्तव में जावास्क्रिप्ट के मोर्चे पर एक गंभीर मुद्दा नहीं था। CSS2 को ठीक से समर्थन करने में विफलता के रूप में लंबे समय के रूप में वे काफी अधिक दर्द का कारण बना। सरासर मात्रा और मुद्दों की गहराई के एक विचार के लिए, मैं quirksmode.org की जाँच करने की सलाह देता हूं । मुझे नहीं लगता कि यह एक उपलब्धि है जिसे आसानी से और जावा में कई पुस्तकालयों के रूप में प्राप्त किया जा सकता है, निश्चित रूप से वीबी में नहीं और निश्चित रूप से किसी भी प्लग-इन रणनीति के साथ नहीं है जिसका लक्ष्य पूरी तरह से नया बनकर पूरे मुद्दे को दरकिनार करना है उपद्रव का प्रकार।
अन्य भाषा सुविधाएँ जो UI के लिए बहुत सारी चीज़ें बनाती हैं:
प्रथम श्रेणी के कार्य: मेरे अनुभव में, कुछ भी नहीं खुद को async प्रसंस्करण और घटना-संचालित प्रतिमानों की भाषा से बेहतर उधार देता है जो अपने कार्यों को प्रथम श्रेणी में लाती है। यूआई कार्य में दोनों चिंताओं को नियमित रूप से संबोधित किया जाता है।
डायनामिक प्रकार: कास्टिंग और टाइप-चेकिंग जावास्क्रिप्ट में एक बहुत ही दुर्लभ आवश्यकता है जिसने कोड को संक्षिप्त और दुबला रखने में मदद की। यूआई चिंताएं बहुत जल्दी जटिल और गड़बड़ हो सकती हैं। कोड को चुस्त रखना और डेटा के प्रवाह के बारे में बिल्कुल स्पष्ट होना, इसे समझना और संशोधित / बनाए रखना महत्वपूर्ण है।
यह संरक्षणवादी नहीं है: कई सालों से किसी को यह उपदेश दिया जा रहा है कि आपको अपनी गलतियों से खुद को बचाने की जरूरत है और दूसरे लोग जो अपने लड़के के साथ कोड कोड बनाकर अत्यधिक कठोर और अनम्य बना सकते हैं और जो मूल काम करते हैं, उसे ध्यान में रखना असंभव है। के साथ और बहुत से लोग सुनते रहे हैं। मैं यह नहीं कहूंगा कि वे हमेशा गलत हैं (शायद यह सोचें), लेकिन मैं कहूंगा कि यह वेब यूआई के लिए गलत दृष्टिकोण है और मुझे विश्वास है कि यह एक ऐसी घटना है जिसे हम ग्राहक को क्रैंक, बनाए रखने और संशोधित करने में लगे हैं- साइड GUI बहुत तेज गति से और इस तरह के काम से अधिक आसानी के साथ आमतौर पर अतीत में अधिक प्रतिबंधक भाषाओं में पूरा किया गया था। मक्खी पर चीज़ों को जल्दी और आसानी से बदलने में सक्षम होने के कारण गतिशील / द्रव वास्तुकला योजनाओं को करना बहुत आसान हो जाता है, जिसके लिए अप्रत्यक्ष और अमूर्त ओवरहेड की स्मारकीय मात्रा की आवश्यकता नहीं होती है जो अंततः यह देखना आसान बनाता है कि आपके कोड में नर्क क्या चल रहा है। और पूर्व-खाली या बहुत अधिक सफाई से अपवादों को संभालना। यह आसान है कि आप इसे हर चीज में अधिक प्रत्यक्ष कर सकें और बहुत कम कोड के साथ इसे अन्य दर्शन दिया जाएगा।
JS कैसे लोकप्रिय हुआ? यह नौकरी के समय और फिर से एक उत्कृष्ट उपकरण साबित हुआ है। यह वह भाषा नहीं है जिसे हम "अटका रहे हैं" यह वह भाषा है जिसने सामान्य रूप से लोकप्रिय भाषाओं में विकास का एक बड़ा कारण प्रेरित किया हो सकता है। और इसके लिए, आप ब्रेंडन ईच और किसी भी समकालीन को धन्यवाद दे सकते हैं, जिन्होंने इस योजना को अपने सिर में डालने में मदद की थी, जो कि जावा को पसंद करने की तुलना में योजना के लिए डिजाइन-प्रेरणा फिट के रूप में योजना को पसंद करने के लिए पसंद करते थे।