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