वेब प्रोग्रामिंग में जावास्क्रिप्ट का उपयोग करने का ऐतिहासिक आधार क्या है?


9

मैं एक वैज्ञानिक जीव विज्ञान पृष्ठभूमि से आता हूं, जहां हम पाइथन का उपयोग भी करते हैं।

अब जब मैंने वेब विकास के साथ शुरुआत करना शुरू कर दिया है, मैंने लगातार खुद को आश्चर्यचकित करते हुए पाया है कि यह क्यों है कि जावास्क्रिप्ट वेब पर प्राथमिक क्लाइंट-साइड भाषा है।

क्या जावास्क्रिप्ट की प्रबलता एक ऐतिहासिक दुर्घटना है या कुछ और? इसके अलावा, मैं उत्सुक हूं कि क्या पायथन को क्लाइंट-साइड स्क्रिप्टिंग में एकीकृत करने में कोई बाधा है?


क्या मेटा.प्रोग्रामर्स.स्टैकएक्सचेंज . com/questions/363/ ... के आधार पर इसे ध्यान देने की आवश्यकता है ?
रीन हेनरिक

@ राइन - vote to closeयदि आपको लगता है कि यह ऑफ टॉपिक है। यदि दूसरों को भी ऐसा ही लगता है, तो वे या एक मध्यस्थ, आपके नेतृत्व का पालन करेंगे।
jmort253

@ jmort253 (शायद मुझे मेटा में जाना चाहिए) जुड़े हुए धागे में आम सहमति नहीं थी और मैं महत्वाकांक्षी हूं। :(
हेन हेनरिक्स

@ रिन - टिप्पणियों में विचार प्रक्रिया ठीक है (क्योंकि यह साइनपोस्ट के रूप में कार्य करती है, क्यों या क्यों नहीं, समुदाय ने एक पोस्ट पर कार्रवाई करने का फैसला किया। यदि कोई समझौता नहीं है, तो आप जो सोचते हैं वह सबसे अच्छा है। :) व्यक्तिगत रूप से, मुझे लगता है कि यह ऐतिहासिक जानकारी दूसरों को भाषा के रूप में जावास्क्रिप्ट के भविष्य को समझने में मदद कर सकती है और इस भाषा को समझना और अपनाना क्यों महत्वपूर्ण है।
jmort253

जवाबों:


16

जावास्क्रिप्ट एक लोकप्रिय वेब ब्राउज़र में उपलब्ध होने वाली पहली स्क्रिप्टिंग भाषा थी, इसलिए इसे लगभग सार्वभौमिक रूप से लागू किया गया था। सभी लोकप्रिय ब्राउज़रों में केवल प्रोग्रामिंग भाषा उपलब्ध होने के कारण, इसके लिए क्लाइंट-साइड प्रोग्रामिंग भाषा होने के अलावा कोई विकल्प नहीं था।

इंटरनेट एक्सप्लोरर ने जावास्क्रिप्ट को एक तरह से लागू किया, जो प्लग-इन स्क्रिप्टिंग इंजनों की अनुमति देता है (यह VBScript और JScript के साथ आया था)। यदि आप अपने कोड को PerlScript या PythonScript में लिखना पसंद करते हैं (जैसा कि मैंने किया), तो आप कर सकते थे, लेकिन आपके सभी क्लाइंट्स के पास वह स्क्रिप्ट भाषा स्थापित होनी चाहिए, और उन्हें IE का उपयोग करना होगा। आप आंतरिक परियोजनाओं के लिए ऐसा कर सकते हैं, लेकिन ऐसा कोई तरीका नहीं है जो कभी इंटरनेट पर काम करेगा।


कुछ और जो मुझे दिलचस्प लगा वो थी पायथन-टू-जावास्क्रिप्ट कम्पाइलर लिखने का प्रोजेक्ट, जैसे पजामा pyjs.org
rd108

"पजामा वेब और डेस्कटॉप दोनों के लिए एक रिच इंटरनेट एप्लिकेशन (आरआईए) डेवलपमेंट प्लेटफॉर्म है। इसमें पायथन-टू-जावास्क्रिप्ट कम्पाइलर, एक AJAX फ्रेमवर्क और एक विजेट सेट एपीआई शामिल है। पजामा ने Google वेब टूलकिट के पायथन पोर्ट के रूप में जीवन शुरू किया। जावा-टू-जावास्क्रिप्ट कम्पाइलर। सामान्य प्रश्न और सुविधाओं की सूची पढ़ें। "
rd108

कुछ-से-कुछ जावास्क्रिप्ट कंपाइलर के टन हैं। कॉफ़ीस्क्रिप्ट, टाइपस्क्रिप्ट, क्लोज़रस्क्रिप्ट, लिस्फ़ीस्क्रिप्ट, इत्यादि
फ़्लोरियन मार्गाइन

7

जावास्क्रिप्ट मूल रूप से ब्रेंडन ईच द्वारा बनाया गया था। इसे पहली बार सितंबर 1995 में नेटस्केप नेविगेटर 2.0 के बीटा रिलीज़ के साथ लाइवस्क्रिप्ट के रूप में भेजा गया था, लेकिन दिसंबर 1995 में सन माइक्रोसिस्टम्स के साथ एक संयुक्त घोषणा में जावास्क्रिप्ट का नाम बदल दिया गया था। यह केवल बाद में (1996 में) था कि जावास्क्रिप्ट को एक्वा इंटरनेशनल में प्रस्तुत किया गया था और अंततः बन गया। मानकीकृत ECMAScript।

इसका वर्तमान बाजार वर्चस्व काफी हद तक ऐतिहासिक जड़ता के कारण है।

स्रोत: http://en.wikipedia.org/wiki/JavaScript#History


2

यकीन नहीं होता, लेकिन यह एक हल्की, क्लाइंटसाइड स्क्रिप्टिंग भाषा है। मुझे लगता है कि इसकी उत्पत्ति शुरुआती नेटस्केप ब्राउज़रों के साथ हुई (हालांकि मैं गलत हो सकता है)। दरअसल, "जावा" शब्द को शामिल करने के लिए रिलीज होने से पहले इसका नाम बदल दिया गया था, हालांकि इसका जावा से कोई लेना-देना नहीं था। यह उस समय लोकप्रियता हासिल करने के लिए एक त्वरित रणनीति थी।


1

मुझे यकीन है कि इसका इतिहास के साथ बहुत कुछ है।

लेकिन मुझे यह भी यकीन है कि मैं नहीं चाहता कि वेबसाइटें मेरे ब्राउज़र पर अजगर जैसी पूर्ण रूप से प्रदर्शित प्रोग्रामिंग भाषा चला सकें। सुरक्षा निहितार्थ मुझे उस तरह से किसी भी साइट से दूर कर देगा (या मुझे बहुत निश्चित होना चाहिए कि ब्राउज़र सैंडबॉक्स बहुत तंग था)।


इसका कोई मतलब नहीं निकलता। IT यह तय करने के लिए पर्यावरण पर निर्भर करता है कि प्रोग्रामिंग भाषा के लिए कौन से API उपलब्ध हैं। बेशक, अगर पायथन को ब्राउज़रों में भेज दिया गया था, तो यह उसी एपीआई तक पहुंच होगा जो जावास्क्रिप्ट अब (डोम की तरह) है, इसलिए इसका कोई नुकसान नहीं होगा।
एंड्रिया

@ और - आप यह तर्क दे सकते हैं कि एक भाषा अपने मानक पुस्तकालयों के सिंटैक्स और शब्दार्थ के समान है। जावास्क्रिप्ट में फ़ाइल I / O के लिए एक मानक पुस्तकालय नहीं है, और यह सुरक्षा कारणों से जानबूझकर है। पायथन में फ़ाइल I / O के लिए मानक पुस्तकालय हैं, और बहुत सारी अन्य चीजों के लिए जिन्हें सुरक्षा मुद्दों पर विचार किया जा सकता है। इन्हें हटा दें और यकीनन आप पायथन के साथ कोई और व्यवहार नहीं कर रहे हैं। बहुत समय पहले, पायथन के पास एक सैंडबॉक्स था - मुझे याद है कि यह संस्करण 1.5 के आसपास है - लेकिन इसे IIRC गिरा दिया गया है क्योंकि यह पर्याप्त उपयोग नहीं किया गया था, और एयर-टाइट से बहुत दूर था।
स्टीव ३४

जावास्क्रिप्ट में I / O के लिए मानक पुस्तकालय लिखे जा रहे हैं। बेशक ये ब्राउज़र में उपलब्ध नहीं हैं। मैं जस्टग कह रहा हूं कि यदि पायथन को ब्राउज़र में लागू किया गया था, तो असुरक्षित पुस्तकालय उपलब्ध नहीं होंगे। और संभवतः आप उन्हें याद नहीं करेंगे, क्योंकि वे एक वेबसाइट पर उपयोग करने के लिए नहीं हैं।
एंड्रिया

-2

"क्या जावास्क्रिप्ट की प्रबलता एक ऐतिहासिक दुर्घटना है या कुछ और है?"

मैं व्यक्तिगत रूप से इस बात पर विचार कर रहा हूं कि जेएस की सफलता डिजाइन का विषय है, जितना कि कई लोग इसे स्वीकार करते हैं और इसे स्वीकार करने के लिए लालायित रहेंगे और न केवल कुछ दुर्घटना या केवल इस तथ्य के कारण कि यह खेल के मैदान पर पहला बच्चा था।

हालांकि जावा डेवलपर्स के लिए अपील करने के लिए इसका नाम रखा गया है और जावा के सी-आधारित सिंटैक्स की तरह सिंटैक्स भी जावा डेवलपर्स के लिए अपील करने के लिए, ब्रेंडन ईच ने www के इतिहास में सबसे बदमाश फैसलों में से एक बनाया, जो वास्तविक रूप से मैकेनिकों के लिए योजना से आकर्षित करना था। प्रेरणा, जो कुछ जावा डेवलपर्स है वह बिल्कुल पसंद नहीं आया है (जो मुझे अत्यधिक मनोरंजक लगता है)।

जावास्क्रिप्ट OOP के लिए अत्यधिक लचीले / दानेदार प्रोटोटाइप विरासत का उपयोग करता है, इसमें क्लोजर हैं, प्रकार 100% गतिशील हैं, फ़ंक्शंस स्वयं प्रथम श्रेणी के हैं जो उन्हें किसी भी अन्य ऑब्जेक्ट या डेटा प्रकार की तरह पास होने की अनुमति देते हैं और विभिन्न संदर्भों में और फिर से उपयोग में लाते हैं मक्खी पर वस्तुओं के लिए लागू हो जैसे कि वे शुरू से ही वास्तविक वस्तु सदस्य घोषित किए गए थे। यह व्यावहारिक रूप से घटना-संचालित आर्किटेक्चर के लिए इस्तेमाल किया जा रहा है, जो कि एक टन मालिकाना कचरा को सामान्य करने या अत्यधिक गैर-रेखीय UI समस्याओं को संभालने के लिए आवश्यक है।

वेब की सुबह के अंत में यह एकमात्र ऐसी भाषा है जो कभी भी एक वास्तविक ब्राउज़र युद्ध के माध्यम से ब्राउज़रों को सामान्य करने के कार्य को गंभीरता से लेती है, जहां नेटस्केप और IE ने उद्देश्य से अलग-अलग चीजों को करने की कोशिश की, उसके बाद 10+ वर्ष का ब्राउज़र truce जहां IE ने चीजों को अलग तरीके से किया क्योंकि MS आलसी है और कुछ सही बेवकूफ विरोधी प्रतिस्पर्धात्मक प्रथाओं में खुद को उलझा हुआ है जिसके परिणामस्वरूप ब्राउज़र गतिहीनता है, और अब एक ऐसी दुनिया जहां ब्राउज़र अंततः HTML के संबंध में एक ही सामान्य कल्पना पर सहमत होना शुरू कर रहे हैं आईई के साथ सीएसएस और डीओएम एपीआई केवल Google और मोज़िला के कारण 10 से अधिक नवीनतम घटनाओं के 2-3 साल पीछे हैं और जेआईटी कंपाइलरों को बाहर कर देता है, जिससे आईई के प्रदर्शन संख्या इतनी दयनीय हो जाती है कि आखिरकार उनके लानत ब्राउज़रों का आधुनिकीकरण किया गया।IE9 वास्तव में गंभीरता से DOM API सपोर्ट को उन स्तरों पर अपग्रेड करने वाला है, जो नेटस्केप 2000ish में वापस सपोर्ट कर रहा था।

JS के पास फ़्लैश के लिए Java Applets और Adobe के ActionScript के रूप में प्रतिस्पर्धा है। यह गंभीर दावेदार के बारे में है। MS ने VB को धक्का देने की कोशिश की लेकिन बुरी तरह से असफल रहा क्योंकि ... अच्छी तरह से ... VB। इसके अलावा, मालिकाना। वास्तव में अधिकांश लोगों की तुलना में बहुत अधिक फ्लैश साइटें थीं। आप बस खोज इंजन के साथ मूर्खतापूर्ण चीजें नहीं खोज सकते। Applets ने अपना काम किया, और यह बदसूरत था। असली बदसूरत। जेएस एकमात्र ऐसी भाषा थी जो वास्तव में कई ब्राउज़रों के संदर्भ में काम करने की समस्या से जूझती थी, जो इस बात से सहमत नहीं थे कि वे कौन से चश्मे सेट कर रहे थे जिनसे वे मेल खाने वाले थे।

हाल के वर्षों में जेएस आवेदन के बहुत व्यापक क्षेत्र में विस्फोट कर रहा है। अन्य वेब प्रौद्योगिकियों के साथ संयोजन में इसे मोबाइल मोर्चे पर अन्य सभी समाधानों को मूल रूप से दस्तक देने के लिए तैयार किया जाता है क्योंकि यह + वेब तकनीक वास्तव में एकमात्र यथार्थवादी विकल्प है यदि आप वास्तव में एक ऐप लिखना चाहते हैं और यह सब पर काम करता है।

तो नहीं, और हाँ मैं एक बहुत बड़ा प्रशंसक हूँ, लेकिन मुझे नहीं लगता कि यह ग्राहक-पक्ष के अन्य सभी दावेदारों को किसी भी तरह से दुर्घटनाग्रस्त कर देता है क्योंकि यह ब्राउज़र के बाहर विस्फोटक रूप से लोकप्रिय होने से अधिक अब एक दुर्घटना माना जा सकता है। जेएस से पहले, कई योजनाएं जैसी भाषाएं नहीं थीं जो मुख्य रूप से अकादमिक नहीं थीं। जेएस को कुछ शक्तिशाली फायदे दिए गए हैं और क्लाइंट-साइड की अनूठी जरूरतों ने उन लाभों के लिए धीरे-धीरे क्रिस्टल स्पष्ट हो जाना संभव बना दिया है।


आपने दो बार बिना स्कीम के उल्लेख किया कि जेएस योजना से कैसे संबंधित है। निश्चित रूप से आपको नहीं लगता कि जेएस के पास मैक्रोज़, एस-एक्सप्रेशंस, टेल रिकर्सियन, कंटीन्यूज़ या स्कीम की अन्य विशिष्ट विशेषताएं हैं - क्या आप?
गेब डे

@Gabe। पाठ के चौथे ब्लॉक की जाँच करें। क्लोज़र, डायनेमिक टाइपिंग और प्रथम श्रेणी के कार्य बहुत प्रमुख हैं। तथ्य यह है कि जेएस सी-जैसे सिंटैक्स का उपयोग करता है, योजना मैक्रोज़ के उपयोग को रोक देगा। यह योजना की फीचर-बाय-फीचर कॉपी नहीं है, लेकिन यह निश्चित रूप से इससे प्रभावित है।
मिक

तो क्लोजर और डायनेमिक टाइपिंग एक भाषा को स्कीम की तरह बनाता है? क्या इसका मतलब C # स्कीम जैसा है? रूबी, पायथन और पर्ल के बारे में क्या? और लिस्प या किसी अन्य समान भाषा के बजाय योजना क्यों?
गाबे

@Gabe मैं कोई स्कीम विशेषज्ञ नहीं हूँ, लेकिन कैजुअल विकिपीडिया-आईएनजी पर मैं लेक्सिकल स्कोप, फर्स्ट-क्लास फ़ंक्शंस का कॉम्बो कहूंगा, और क्लोज़र तीन हैं जो जेएस को स्कीम से बहुत करीब रखते हैं, यह जावा की तुलना में है। अन्यथा मैं सिर्फ ब्रेंडन आइच के शब्द को इस पर ले रहा था और माना कि प्रथम श्रेणी के कार्य प्रमुख स्टैंडआउट थे।
एरिक रेपेने

ठीक है, इसलिए जेएस के पास क्लोजर है (जो मेरा मानना ​​है कि प्रथम श्रेणी के कार्यों और लेक्सिकल स्कूपिंग का अर्थ है) और डायनामिक टाइपिंग, जैसे स्कीम। चूँकि C # में क्लोज़र, डायनेमिक टाइपिंग, और S- एक्सप्रेशन का एक सीमित रूप है, इसका मतलब है कि C # JS से भी ज्यादा स्कीम-जैसा है?
गाबे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.