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