जावास्क्रिप्ट के लिए विकल्प


144

फिलहाल, एकमात्र पूरी तरह से समर्थित भाषा और ब्राउज़र में DOM ट्री हेरफेर के लिए वास्तविक मानक जावास्क्रिप्ट है। ऐसा लगता है कि इसमें गहरे डिजाइन के मुद्दे हैं जो इसे नौसिखिए के लिए बग और खदानों की सुरक्षा का क्षेत्र बनाते हैं।

क्या आप अगली पीढ़ी के ब्राउज़रों में DOM ट्री हेरफेर और HTTP अनुरोधों के लिए किसी भी प्रकार (न केवल जावास्क्रिप्ट) की एक बेहतर (पुनः डिज़ाइन) भाषा को पेश करने के लिए किसी भी अस्तित्व या योजनाबद्ध पहल के बारे में जानते हैं? यदि हाँ, तो इसके एकीकरण का रोडमैप क्या है, कहना, फ़ायरफ़ॉक्स, और यदि नहीं, तो किन कारणों (इंटरऑपरेबिलिटी के अलावा) जावास्क्रिप्ट को ब्राउज़र प्लेटफ़ॉर्म पर एकमात्र समर्थित भाषा होना चाहिए?

मैंने पहले से ही jQuery का उपयोग किया था और मैंने "जावास्क्रिप्ट: द गुड पार्ट्स" भी पढ़ा। वास्तव में सुझाव अच्छे हैं, लेकिन मैं जो समझ नहीं पा रहा हूं वह यह है: केवल जावास्क्रिप्ट क्यों? सर्वर-साइड (आपका पसंदीदा-ओएस प्लेटफॉर्म) पर, हम हर भाषा के साथ एक डोम ट्री को हेरफेर कर सकते हैं, यहां तक ​​कि फोरट्रान भी। क्लाइंट साइड (ब्राउज़र प्लेटफ़ॉर्म) केवल जावास्क्रिप्ट का समर्थन क्यों करता है?


4
Google Dart, Script #, CoffeeScript, JSX (JS के दोनों अलग-अलग कार्यान्वयन), JavaScript सद्भाव आदि इस लिंक को अधिक github.com/jashkenas/cfish-script/wiki/…
nawfal

25
अच्छा प्रश्न। 10 दिनों में विकसित की गई भाषा अभी भी 2013 में हमारे साथ है। wtfjs.com
Den

2
"केवल जावास्क्रिप्ट क्यों? सर्वर-साइड (आपका पसंदीदा-ओएस प्लेटफॉर्म) पर, हम हर भाषा के साथ एक डोम ट्री को हेरफेर कर सकते हैं, यहां तक ​​कि फोरट्रान भी। क्लाइंट साइड (ब्राउज़र प्लेटफॉर्म) केवल जावास्क्रिप्ट का समर्थन क्यों करता है?" सर्वर की ओर से आप कभी भी जो चाहें इंस्टॉल कर सकते हैं, लेकिन मैं आपके ग्राहकों को अतिरिक्त प्लगइन्स / एडऑन्स स्थापित करने के लिए बाध्य नहीं कर सकता, भले ही हमारे पास जावास्क्रिप्ट के साथ यह कई बग्स और सुरक्षा मुद्दे हों, हम कितने कीड़े और सुरक्षा मुद्दों का अनुमान लगाते हैं हम कुछ और जोड़ते हैं?
पीटर

6
@Peter मैं नहीं बता सकता कि आपका तर्क गंभीर है या मजाक है। यदि लोग चाहें तो प्लेटफ़ॉर्म स्थापित करना बहुत ही आसान है। यदि जावास्क्रिप्ट के लिए एक विकल्प उपलब्ध था और अच्छी तरह से काम किया था, तो वाणिज्यिक प्रदाताओं को उपयोगकर्ताओं को बस इसे चलाने के लिए जो भी आवश्यक है उसे डाउनलोड करने की आवश्यकता होगी - जैसे कि उन्होंने हमेशा फ्लैश के साथ किया है, और जैसा कि उन्होंने सिल्वरलाइट के साथ एक समय के लिए किया था। सभी कारणों से क्‍यों न क्‍लाइंट की ओर से कोई विकल्‍प उभर कर सामने आ सके, आपके उपयोगकर्ताओं को यह सुनिश्चित करने में कठिनाई हो सकती है कि आपका प्‍लेटफॉर्म उनमें से एक महत्वपूर्ण नहीं है।
ely

1
@ अच्छी तरह से: और यह अच्छी तरह से निकला? Chamak? जावा एप्लेट्स? सिल्वरलाइट? मैंने कभी सिल्वरलाइट का इंस्टालेशन भी नहीं किया था।
सेबस्टियन मच

जवाबों:


41

जावास्क्रिप्ट के साथ समस्या स्वयं भाषा नहीं है - यह पूरी तरह से अच्छी प्रोटोटाइप और गतिशील भाषा है। यदि आप एक 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 (फिर से)। मैं वास्तव में विभिन्न ब्राउज़रों के लिए विभिन्न भाषाओं में कोड लिखना नहीं चाहता।

यह ध्यान दिया जाना चाहिए कि जावास्क्रिप्ट 'समाप्त' नहीं है - यह अभी भी नए ब्राउज़रों में बेहतर बनने के लिए विकसित हो रहा है। नवीनतम संस्करण साल 'ब्राउज़रों कार्यान्वयन की से आगे है और वे अगले एक पर काम कर रहे हैं।


5
मैं कहता हूँ कि यह "व्याख्या" है, ब्राउज़र द्वारा "संकलित" नहीं।
फ्लेविस स्टेफ

19
नए ब्राउज़र जावास्क्रिप्ट पर JIT संकलन करते हैं।
नोसरेडना

4
मैंने jit के दावे को भी नजरअंदाज कर दिया, और, जैसा कि यह पता चला है, फ़ायरफ़ॉक्स 3.1 में अंतर्निहित समर्थन होगा। चेक आउट andreasgal.com/2008/08/22/tracing-the-web या people.mozilla.com/~schrepp tm-
image-

2
V8 जावास्क्रिप्ट इंजन (क्रोम) सीधे संकलित करता है।
डेव डब्ल्यू। स्मिथ

3
मैं आपके पहले उत्तर से असहमत हूं "जावास्क्रिप्ट के साथ समस्या भाषा ही नहीं है"। मुझे लगता है कि यह वाक्यात्मक रूप से एक बहुत ही बदसूरत भाषा है और अधिकांश अन्य भाषाओं से आपको मिलने वाली सुविधाओं का अभाव है। सुविधाएँ, जो कम से कम I, अभी भी बड़े अनुप्रयोगों (लोडिंग निर्भरता, पठनीय OO सिद्धांतों) में चाहिए। अगर हमें अब यह (इंटरनेट) करना है, तो मुझे नहीं लगता कि भाषा के लिए जावास्क्रिप्ट 'सबसे अच्छा' विकल्प होगा।
14::३

28

जावास्क्रिप्ट के लिए संकलन

अभी के लिए, एक ऐसी भाषा का उपयोग करना जो जावास्क्रिप्ट का संकलन करता है, होशियार कोड लिखते समय सभी प्लेटफार्मों तक पहुंचने का एकमात्र यथार्थवादी तरीका लगता है, और यह संभवतः लंबे समय तक मामला रहेगा। किसी भी नई पेशकश के साथ, हमेशा ऐसा कोई कारण होगा कि एक या अधिक विक्रेता इसे जहाज करने के लिए जल्दी नहीं करेंगे।

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

इतने सारे विकल्प

वहाँ भाषाओं का एक बड़ा पूल है जो जावास्क्रिप्ट को संकलित करता है। एक काफी व्यापक सूची यहाँ मिल सकती है:

गौरतलब है

मैं कुछ उल्लेख करूंगा कि मुझे लगता है कि वे उल्लेखनीय हैं (जबकि कुछ रत्नों की उपेक्षा करने में कोई संदेह नहीं है, जिनसे मैं अनजान हूं):

  • स्पाइडर 2016 में दिखाई दिया। यह गो, स्विफ्ट, पायथन, सी # और कॉफीस्क्रिप्ट के सर्वश्रेष्ठ विचारों को लेने का दावा करता है। यह असुरक्षित नहीं है, लेकिन इसमें कुछ मामूली सुरक्षा विशेषताएं हैं

  • एल्म : हास्केल उन सभी की सबसे स्मार्ट भाषा हो सकती है , और एल्म जावास्क्रिप्ट के लिए हास्केल का एक प्रकार है। यह अत्यधिक प्रकार की जानकारी और संक्षिप्त है, और प्रतिक्रियाशील टेम्पलेट्स या एमवीसी स्पेगेटी के लिए एक स्वच्छ विकल्प के रूप में कार्यात्मक प्रतिक्रियाशील प्रोग्रामिंग प्रदान करता है । लेकिन यह प्रक्रियात्मक प्रोग्रामर के लिए काफी झटका हो सकता है ।

  • गूगल के जाओ संक्षिप्तता, सरलता, और सुरक्षा के उद्देश्य से है। गोफरजेएस द्वारा गो कोड को जावास्क्रिप्ट में संकलित किया जा सकता है ।

  • डार्ट Google का बाद में जावास्क्रिप्ट को बदलने का प्रयास था। यह वैकल्पिक टाइपिंग के साथ सी / जावा-जैसे सिंटैक्स के माध्यम से इंटरफेस और अमूर्त कक्षाएं प्रदान करता है।

  • हैक्स फ्लैश के एक्शनस्क्रिप्ट की तरह है, लेकिन यह कई भाषाओं को लक्षित कर सकता है , इसलिए आपके कोड को जावा, सी, फ्लैश, पीएचपी और जावास्क्रिप्ट कार्यक्रमों में फिर से उपयोग किया जा सकता है। यह टाइप-सेफ और डायनामिक ऑब्जेक्ट प्रदान करता है।

  • ओपलैंग जावास्क्रिप्ट डेटाबेस से प्रत्यक्ष डेटाबेस का उपयोग , स्मार्ट निरंतरता, टाइप-चेकिंग और क्लाइंट / सर्वर पृथक्करण के साथ सहायता प्रदान करने के लिए सिंटैक्टिक चीनी जोड़ता है । (NodeJS और MongoDB से जुड़े हैं।)

  • गोरिल्लास्क्रिप्ट , "कुछ सामान्य त्रुटियों को रोकने का प्रयास करते हुए उपयोगकर्ता को सशक्त बनाने के लिए डिज़ाइन की गई संकलन-टू-जावास्क्रिप्ट भाषा।" कॉफ़ीस्क्रिप्ट के समान है, लेकिन अधिक व्यापक है, सुरक्षा बढ़ाने और दोहराए जाने वाले बॉयलरप्लेट पैटर्न को कम करने के लिए अतिरिक्त सुविधाओं का एक गुच्छा प्रदान करता है।

  • लाइटस्क्रिप्ट कहीं-कहीं कॉफिस्क्रिप्ट और गोरिल्लास्क्रिप्ट को इनबिल्ट करता है। यह "इनलाइन" कॉलबैक के लिए async / उपज सिंटैक्स और चर टाइपोस के लिए जाँच प्रदान करता है।

  • Microsoft का टाइपस्क्रिप्ट जावास्क्रिप्ट का एक छोटा सुपरसेट है जो आपको फ़ंक्शन तर्कों पर टाइप-प्रतिबंध लगाता है, जो कुछ बग पकड़ सकता है। इसी तरह बेटरजेएस आपको प्रतिबंधों को लागू करने की अनुमति देता है, लेकिन शुद्ध जावास्क्रिप्ट में, अतिरिक्त कॉल जोड़कर या जेएसडीओसी टिप्पणियों में प्रकार निर्दिष्ट करके। और अब फेसबुक ने फ्लो की पेशकश की है जो अतिरिक्त रूप से टाइप इंफ़ेक्शन करता है।

  • लाइवस्क्रिप्ट कॉफ़ीस्क्रिप्ट से एक स्पिन-ऑफ है जो अपनी संक्षिप्तता के लिए लोकप्रिय था लेकिन मेरे लिए बहुत पठनीय नहीं है। टीमों के लिए शायद सर्वश्रेष्ठ नहीं है।

कैसे चुनाव करें?

जब चुनने एक वैकल्पिक भाषा, वहाँ कुछ कर रहे हैं कारकों पर विचार करने :

  • यदि अन्य डेवलपर भविष्य में आपकी परियोजना में शामिल होते हैं, तो उन्हें इस भाषा को गति देने और सीखने के लिए कितना समय लगेगा, या क्या संभावना है कि वे इसे पहले से ही जानते हैं?

  • क्या भाषा में बहुत कम विशेषताएं हैं (कोड अभी भी बॉयलरप्लेट से भरा होगा) या बहुत अधिक विशेषताएं (इसमें मास्टर होने में लंबा समय लगेगा, और तब तक कुछ वैध कोड अनिर्दिष्ट हो सकते हैं)?

  • क्या इसमें आपके प्रोजेक्ट के लिए आवश्यक सुविधाएँ हैं? (क्या आपके प्रोजेक्ट को टाइप-चेकिंग और इंटरफेस की आवश्यकता है? क्या नेस्टेड कॉलबैक नरक से बचने के लिए स्मार्ट निरंतरता की आवश्यकता है? क्या बहुत अधिक प्रतिक्रिया है? भविष्य में अन्य वातावरणों को लक्षित करने की आवश्यकता हो सकती है? "

भविष्य...

जेफ वॉकर ने "जावास्क्रिप्ट समस्या" के बारे में ब्लॉग पोस्टों की एक सोचा-समझा श्रृंखला लिखी है , जिसमें बताया गया है कि वह न तो टाइपस्क्रिप्ट , न ही डार्ट और न ही कॉफ़ीस्क्रिप्ट के लिए पर्याप्त समाधान प्रदान करता है। वह निष्कर्ष में एक बेहतर भाषा के लिए कुछ वांछनीय सुविधाओं का सुझाव देता है ।


ES6 जावास्क्रिप्ट का विस्तार सुविधाओं के एक समूह के साथ करता है जो कक्षाओं को अधिक स्पष्ट रूप से निर्दिष्ट करने की अनुमति देता है, और जनरेटर के माध्यम से "इनलाइन एसिंक्स"। हालांकि अभी भी गतिशील रूप से टाइप किया गया है!
२०:०५ पर joeytwiddle

एल्म का दृष्टिकोण नाइट्रोजन या एन 2 ओ (एर्गैंग फ्रेमवर्क) के समान है यही कारण है कि मुझे यह पसंद है।
डेनिसकोलोडिन

आजकल हमारे पास ES8 में और टाइपस्क्रिप्ट में कुछ कॉफ़ीस्क्रिप्ट की सिंटैक्टिक शुगर है, साथ ही साथ async-wait भी है। टाइपस्क्रिप्ट ने मेरे कार्यस्थल पर बहुत सारे कीड़ों को रोका है, हालांकि आश्चर्य के लिए अभी भी कुछ अवसर हैं!
joeytwiddle

अब वासम भी है , जो ब्राउज़र में विभिन्न अन्य भाषाओं को चलाने की अनुमति देता है। हालाँकि DOM के साथ संचार अभी भी जावास्क्रिप्ट के माध्यम से हो रहा है।
joeytwiddle

22

क्या ब्राउज़र प्लेटफ़ॉर्म पर जावास्क्रिप्ट केवल समर्थित भाषा होनी चाहिए?

हां और ना। Google द्वारा डार्ट नामक एक विकल्प है जो जावास्क्रिप्ट को संकलित करता है और jQuery की तरह ही यह डोम हेरफेर को थोड़ा आसान बनाने की कोशिश करता है। यह प्रयोग करने में मजेदार हो सकता है, इसे देखें।

यह सभी देखें


15

यह सच है कि जावास्क्रिप्ट एक बिंदु पर निपटने के लिए कुख्यात था, लेकिन वेब विकास समुदाय ने एक लंबा सफर तय किया है। इसके बजाय, मैं आपको jQuery पर एक नज़र डालने के लिए प्रोत्साहित करूंगा । यह आसान है और सभी विभिन्न समस्याओं को दूर करता है।

और वास्तव में कोई विकल्प नहीं हैं जो बोर्ड भर में काम करते हैं। दिमाग में फ्लैश आता है लेकिन वह भी ईसीएमए लिपि है और यह ज्यादातर चीजों के लिए शायद खत्म हो गया है।


1
या मूट्स, प्रोटोटाइप, और डोज़ो। jqueryvsmootools.com मटोल और jquery के बीच एक महान तुलना है।
रयान फ्लोरेंस

जावास्क्रिप्ट के साथ कुछ भी गलत नहीं है। आप IE के JScript और सामान्य रेंडरिंग समस्याओं और विभिन्न ब्राउज़रों के साथ विसंगतियों की समस्याओं का उल्लेख कर रहे हैं।
गाविन

7

लघु अवधि, मैं ब्राउज़र असंगतताओं को छिपाने के लिए jQuery जैसी चीजों का उपयोग करूँगा। लंबे समय तक, सिल्वरलाइट या एडोब आकाशवाणी जैसी प्रौद्योगिकियां भविष्य में इसे एक बहुत अलग खान क्षेत्र (लेकिन अभी भी एक मेरा क्षेत्र) बना सकती हैं।


1
ब्राउज़र असंगतताओं को छिपाने के लिए jQuery का उपयोग करने के लिए +1। मैंने एक पुस्तक पढ़ते हुए बताया कि उनमें से कुछ तंत्र कैसे काम करते हैं और मुझे विश्वास है जब मैं कहता हूं कि jQuery इस विभाग में प्रोग्रामर सिरदर्द को बचा रहा है।
विवियन नदी

1
हेंडसाइट में तकनीकी उत्तरों को देखना हमेशा एक अजीब दृश्य होता है। अब हम जानते हैं कि वेब जीता: सिल्वरलाइट, फ्लैश और हवा सभी मृत हैं, और शेष विजेता इसकी सभी अजीब और अद्भुत घटनाओं में जावास्क्रिप्ट है।
ऑलिगॉफ्रेन

6

डग क्रॉकफोर्ड ने Google को जावास्क्रिप्ट और उसके भविष्य के बुरे और अच्छे हिस्सों का विवरण देते हुए एक बात कही । यह वास्तव में 1999 के बाद से बहुत कुछ नहीं बदला है - जो कि एक अच्छी बात कही जा सकती है (बहुत सारे ब्राउज़र एक ही कोड को तब तक चला सकते हैं जब तक आप अपनी सीमाओं के बारे में जानते हैं) और डग दिखाता है कि अच्छे हिस्से कहाँ हैं ज्यादातर गलतफहमियां थीं जो बहुत शक्तिशाली थीं।

DOM मैनपुलेशन के लिए, JQuery को एक क्लाइंट-साइड लाइब्रेरी के रूप में देखें, जो अधिकांश भयानक DOM API को उन ऑपरेशन्स के साथ बदल देती है जो कोड के सुंदर सुरुचिपूर्ण बिट्स को लिखने के लिए एक दर्द है जो लिखने में आसान हैं।


5

यदि आप सोच रहे हैं कि जावास्क्रिप्ट में गहरे मुद्दे हैं, तो मैं डग क्रॉकफोर्ड की पुस्तक, जावास्क्रिप्ट: द गुड पार्ट्स की सिफारिश करता हूं । (या Google "क्रॉकफ़ोर्ड जावास्क्रिप्ट" के लिए कई वीडियो प्रस्तुतियों को खोजने के लिए जो उसने किया है।) क्रॉकफ़ोर्ड स्केच एक सुरक्षित सबसेट और प्रथाओं के सेट को बाहर करता है, और विशेष रूप से बचने के लिए भाषा के कुछ हिस्सों को सूचीबद्ध करता है।

मैं जावास्क्रिप्ट को प्रतिस्थापित करने की योजनाओं से अनजान हूं क्योंकि डोम में हेरफेर करने का वास्तविक तरीका है। इसलिए इसे सुरक्षित और अच्छी तरह से इस्तेमाल करना सीखें।


1
दोबारा पढ़ें। यह स्पष्ट है कि उन्होंने जवाब पढ़ने के बाद अपने प्रश्न को संपादित किया।
डेव डब्ल्यू स्मिथ

4

ग्राहक पक्ष के संदर्भ में जावास्क्रिप्ट डोम को हेरफेर करने का एकमात्र तरीका है। सर्वर साइड के संदर्भ में कई तरीके हैं।


4

Internet Explorer प्लग-इन करने योग्य स्क्रिप्टिंग भाषाओं का समर्थन करता है, हालांकि JScript के अलावा IE के साथ एकमात्र मज़बूती से शामिल VBScript है।

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


1
IE में VBScript का उपयोग न करें - यह VB का कुछ भयानक संस्करण है जो कि बड़े एमएस ने सोचा था कि इसे हटा दिया जाएगा। यह वास्तव में सामान्य VB या VBScript की तरह काम नहीं करता है, और यह जावास्क्रिप्ट धीमा है।
कीथ

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

4

यदि आप अपने ग्राहकों / आगंतुकों को विशिष्ट ब्राउज़रों तक सीमित रखने के लिए तैयार हैं, और संभवतः उन्हें प्लग-इन स्थापित करने की आवश्यकता है, तो आप एमएस सिल्वरलाइट को देख सकते हैं - एक पठनीय अवलोकन विकिपीडिया पर है । सिल्वरलाइट 2 के साथ, आप चला सकते हैं, क्लाइंट-साइड, आपके द्वारा सी #, आयरनपाइथन, आयरनरुबी, वीबी.नेट, आदि में लिखे गए कोड; मोनो परियोजना से सिल्वरलाइट का मुफ्त चाँदनी क्लोन, लिनक्स के लिए समान कार्यक्षमता लाने का वादा करता है।

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

इसलिए, किसी भी चीज़ के लिए पर्याप्त माइंडशेयर, अपनाना और कर्षण प्राप्त करना Microsoft के लिए अपने इंजीनियरों और विपणन बजटों के बड़े समूहों और पक्ष में एक मुफ्त-सॉफ्टवेयर परियोजना के साथ भी एक कठिन लड़ाई साबित हो रहा है (संभवतः मालिकाना ताला के बारे में चिंताओं को कम करने के लिए) ) - जो यह समझाने में मदद कर सकता है कि बहुत कम ब्याज क्यों है, जैसे कि मोज़िला फाउंडेशन की ओर से, ऐसे लक्ष्य की ओर धकेलने में। "इंटरऑपरेबिलिटी के अलावा", आप कहते हैं: लेकिन स्पष्ट रूप से इंटरऑपरेबिलिटी का मुद्दा The biggie है, जिसे देखते हुए हम wrt सिल्वरलाइट की प्रगति का निरीक्षण करते हैं ...


3

जैसा कि पहले ही कहा जा चुका है, आपके पास फ्लैश (एक्शनस्क्रिप्ट, जो जावास्क्रिप्ट से एक व्युत्पन्न भाषा है) और सिल्वरलाइट / मूनलाइट (आयरनपाइथन, आयरनरुबी, जेस्क्रिप्ट, वीबीएसस्क्रिप्ट, सी #) जो प्लगइन्स के माध्यम से ब्राउज़र में चल सकता है (पहले वाला बहुत अधिक सर्वव्यापी है) ।

एक और विकल्प भी है अगर आपको रूबी पसंद है: HotRuby , यह जावास्क्रिप्ट में एक रूबी कार्यान्वयन है जो ब्राउज़र में चलेगा। यह अभी बहुत परिपक्व नहीं है, लेकिन आप इसे देख सकते हैं।


3

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

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


मैंने GWT और स्क्रिप्ट # का उल्लेख किया। Script # में रुचि रखने वालों के लिए, लिंक प्रोजेक्ट है
।nikhilk.net

मुझे ओबज-जे / कैप्पुकिनो की ओर इशारा करने के लिए धन्यवाद। यह वेब ऐप्स बनाने के लिए अद्भुत है और मैंने इसे केवल इसलिए खोला क्योंकि आपने इसका उल्लेख किया था और नाम (और कोको-संबंधीता) ने मुझे अंतर्विरोधित किया।
तिमो

2

नहीं। जावास्क्रिप्ट यह है, लेकिन यह विकसित होगा। अगला संस्करण "जावास्क्रिप्ट सद्भाव" है, और यदि आप Google हैं तो आप अधिक सीख सकते हैं।

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

मुझे जावास्क्रिप्ट से प्यार है। लेकिन GWT सहित अन्य समाधान हैं, जो जावा को जावास्क्रिप्ट और स्क्रिप्ट # के लिए संकलित करता है, जो C # को जावास्क्रिप्ट में संकलित करता है।


2

Jquery (अभी भी जावास्क्रिप्ट लेकिन) यह वास्तव में आपकी मदद करेगा कि उनके पास लगभग सभी ब्राउज़रों के लिए समर्थन है और यह वास्तव में नहीं है कि वे क्या सोचते हैं :)


2

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

भले ही शुरू में अंग्रेजी सीखना आसान हो, लेकिन इसमें बहुत असंगत उच्चारण और नियमों की तुलना में अधिक अपवाद हैं। जावास्क्रिप्ट की तरह यह हमेशा एक आश्चर्य की पेशकश करने के लिए वहाँ है।

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

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


1

मुझे नहीं लगता कि जावास्क्रिप्ट को किसी भी समय जल्द ही बदल दिया जाएगा। अमीर ग्राहकों के लिए एक पूरी तरह से अलग दृष्टिकोण के लिए, आप फ्लेक्स की जांच करना चाह सकते हैं, जो एक फ्लैश-आधारित तकनीक है।


1

शायद haxe (देखें haxe.org) की तरह कुछ आपकी मदद कर सकता है। यह एक ऐसी भाषा है जो जावास्क्रिप्ट से अधिक साफ-सुथरी लगती है और इसे जावास्क्रिप्ट से संकलित किया जा सकता है, इसलिए इसे एक ब्राउज़र के अंदर चलाया जा सकता है।

मुझे पता है कि यह आपके सवाल का सीधा जवाब नहीं है, लेकिन मुझे लगा कि यह आपके लिए दिलचस्प हो सकता है, फिर भी।


1

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

यह बताता है कि मुझे एक अलग क्लाइंट-साइड भाषा में स्विच करने की कोई योजना क्यों नहीं पता है।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.