2009-08-11 2 views
11

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

जावास्क्रिप्ट और इसी तरह की स्क्रिप्टिंग भाषाओं को दृढ़ता से टाइप नहीं किए जाने के कारण क्या हैं? क्या यह सिर्फ भाषा को "आसान" समझने और अधिक पहुंच योग्य बनाने के लिए है, या वास्तविक समस्या "संकलन-समय" की कमी है?

+0

आप शायद एक जवाब के रूप में अपनी राय पोस्ट करना चाहिए - गेज करने के लिए कैसे दृढ़ता से लोग (dis) – karim79

+0

स्पष्टीकरण सहमत: एक नज़र जावास्क्रिप्ट या किसी अन्य गतिशील भाषा पार्स करने से आप को रोकने के कुछ भी नहीं है। आप किस बारे में बात कर रहे हैं, अर्थात् पार्स किए गए पाठ का मूल्यांकन कर रहा है। – JaredPar

+0

एक उत्तर के रूप में अपना खुद का विरोध जोड़ा गया। और आप, जेरेड, लेकिन एक ब्राउज़र वातावरण मानते हुए, मुझे पता नहीं है कि (कम से कम मेरे ज्ञान के लिए नहीं?)। यदि आपके पास दृढ़ता से टाइप की गई स्क्रिप्टिंग भाषा थी, तो मुझे लगता है कि आप इसके लिए मजबूर होंगे? :) – cwap

उत्तर

15

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

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

+0

+1 "इसे जोड़ने में क्या नुकसान है" के लिए +1; जो लोग नहीं चाहते हैं उन्हें इसका उपयोग नहीं करना पड़ेगा। –

+0

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

1

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

2

यह टाइप नहीं होने से लचीलापन प्राप्त करता है। मैं व्यक्तिगत रूप से कमजोर टाइप की गई भाषाओं का आनंद लेता हूं।

तो जवाब है कि लाभ और कमियां होंगी।

उन लोगों के लिए जो ब्राउज़र में दृढ़ता से टाइप की गई भाषा चाहते हैं, जीडब्ल्यूटी और स्क्रिप्ट # उपलब्ध हैं।

+0

मैं नहीं कहूंगा कि वे इतने लचीले हैं क्योंकि वे त्रुटियों की पूरी कक्षा पेश करते हैं जिन्हें स्वचालित रूप से रोका जा सकता है, और वे अतिरिक्त अतिरिक्त कार्यक्षमता की पेशकश करते समय ऐसा करते हैं। आप गारंटी दे सकते हैं कि उस कार्य को पारित करने वाली ऑब्जेक्ट आपको जिस विधि की आवश्यकता है उसका समर्थन करेगी, लेकिन आपको तब तक पता नहीं चलेगा जब तक कोड की उस पंक्ति को निष्पादित नहीं किया जाता है ... – weberc2

0

मैं एक्शनस्क्रिप्ट 2 ई-मेल में ई-लर्निंग के लिए एक तेज़ प्रोटोटाइप ढांचा तैयार करता हूं। मेरी सबसे बड़ी पकड़ एएस 2 दृढ़ता से टाइप नहीं की गई थी और यह डिबगिंग करते समय मुझे कई सिरदर्द का कारण बनती है। मुझे लगता है कि दृढ़ता से टाइपिंग चीजें कोड को पढ़ने में आसान बनाती हैं। मुझे लगता है कि एक कमजोर टाइप की गई भाषा अधिक लचीलापन प्रदान करती है।

मैं पठनीयता की ओर अधिक झुकता हूं जब मुझे वापस जाना पड़ता है और पता चलता है कि कोड में बिल्ली क्या चल रहा है, मैंने 6 महीने पहले लिखा था।

+1

AS2 दृढ़ता से टाइप किया गया है। चर के बाद बस निर्दिष्ट करें। उदाहरण: var vector1: वेक्टर – Marius

1

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

+0

इसके अलावा, मजबूत टाइपिंग त्रुटियों के पूरे वर्गों को खत्म करने लगती है, और यह याद रखना आसान बनाता है कि आपकी ऑब्जेक्ट किस प्रकार का समर्थन करता है। जावास्क्रिप्ट के साथ, एक ही प्रकार की दो वस्तुओं में पूरी तरह से अलग-अलग तरीके हो सकते हैं। याहू! – weberc2

2

क्या जावास्क्रिप्ट और समान स्क्रिप्टिंग भाषाओं को दृढ़ता से टाइप करने से लाभ होगा?

प्रकार प्रणाली जावास्क्रिप्ट 2.0 एक प्रकार, जो सभी संभावित मानों की एक सबसेट के रूप में सोचा जा सकता है की धारणा का समर्थन करता है:

हाँ, वे, JavaScript 2.0 एक type system परिचय देता है। ऑब्जेक्ट, संख्या, और स्ट्रिंग जैसे कुछ अंतर्निहित प्रकार हैं; प्रत्येक उपयोगकर्ता परिभाषित वर्ग (सेक्शन 6) भी एक प्रकार है।

यह भी देखें: सामान्य में http://timkadlec.com/2008/04/an-objective-look-at-javascript-2-0-strong-typing/

, मजबूत टाइपिंग के लिए समर्थन संकलन के लिए कई दिलचस्प अवसर प्रदान करता है और अनुकूलन गुजरता है।

0

माइक्रोसॉफ्ट टाइपप्रति साथ अंतरिम में मजबूत टाइपिंग समस्या को हल करने के लिए एक लंबा रास्ता चला गया है।

http://www.typescriptlang.org/

संबंधित मुद्दे