2010-07-28 12 views
6

मेरे लिए यह है: मजबूत प्रकारआपके लिए प्रोग्रामिंग भाषाओं के सबसे महत्वपूर्ण गुण क्या हैं?

Wikipedia:

"मजबूत टाइपिंग" का तात्पर्य है कि प्रोग्रामिंग भाषा intermixing है कि हो जाने की अनुमति है पर गंभीर प्रतिबंध लगाता है, संकलन या के संचालन को रोकने के स्रोत कोड जो डेटा का उपयोग अमान्य तरीके से किया जाता है

यह क्यों महत्वपूर्ण है? क्योंकि मुझे रनटाइम त्रुटि से अधिक संकलन त्रुटि पसंद है।

मुझे लगता है कि कुछ जानकारी प्रदान करना बेहतर है और कुछ कारणों से यह महत्वपूर्ण क्यों है।

+1

मेरा नियोक्ता यह – PostMan

+1

का समर्थन करता है यह हाथ में कार्य के लिए काम करता है कि काम करता है। –

+0

शायद: * मैं रनटाइम त्रुटि से अधिक संकलित त्रुटि को सहन करता हूं * :) –

उत्तर

5

अभिव्यक्ति।

यही है, यह डिजाइन और विचारों को व्यक्त करना आसान बनाता है और डिजाइन कार्य करने के लिए तकनीकी कामकाज की आवश्यकता नहीं होती है।

+0

गहरी व्याख्या करने की देखभाल? क्या आप अभिव्यक्ति से मतलब एक ट्यूरिंग पूर्ण भाषा है? – nanda

+1

सभी वास्तविक प्रोग्रामिंग भाषाएं ट्यूरिंग-पूर्ण हैं, और कई में एक और ट्यूरिंग-पूर्ण सबसेट (जैसे सी ++ टेम्पलेट्स) शामिल हैं। –

+0

अभिव्यक्तिपूर्ण और संक्षिप्त के बीच क्या अंतर है? – nanda

0

संक्षिप्त, लेकिन स्पष्ट वाक्यविन्यास।

विजुअल बेसिक: यह स्पष्ट है कि क्या हो रहा है, लेकिन यह बहुत verbose है।

पर्ल: यह काफी संक्षिप्त है, लेकिन आपको अपने कीबोर्ड पर यादृच्छिक रूप से बैंग करके स्पष्ट प्रोग्राम मिलेंगे।

सी #: बस सही: डी

+2

पर्ल अच्छी तरह से लिखा गया है जब पठनीय है, लेकिन मैंने इसे पहले सीखा। मैं व्यक्तिगत रूप से सी # और जावा को भयानक वर्बोज़ ढूंढता हूं। –

+0

मैं पर्ल खड़ा नहीं कर सकता। और, मैं मानता हूं कि जावा काफी वर्बोज़ भी है। लेकिन, सी # ने हाल के वर्षों में एकजुटता के लिए काफी प्रगति की है, जबकि सभी बहुत ही स्पष्ट वाक्यविन्यास बनाए रखते हैं। मुझे लगता है कि मैं एक सी # फैनबॉय हूं, फिर: डी –

+1

मैं आपके साथ वहां था, जब तक सी # .... उत्तर लिस्प मैन, LISP है। (गाल में मजबूती से जीभ) –

1

इस तरीके से कि यह अच्छा परीक्षण के बाद तेजी से तैनाती के लिए अनुमति देते हैं में समर्थन किया।

+0

मुझे नहीं लगता कि यह एक ** भाषा ** संपत्ति – nanda

+0

तकनीकी रूप से सच है। बीडब्ल्यूटी, मेरा मतलब 'समर्थित' नहीं है कि एक हेल्पडेस्क है, लेकिन भाषा के लिए अतिरिक्त टूलिंग/आईडीई/इत्यादि उपलब्ध कराई गई है। जो एक भाषा संपत्ति नहीं है, लेकिन अभी भी मेरे लिए महत्वपूर्ण है **। – Tobiasopdenbrouw

4

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

2

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

2

) मजबूत टाइपिंग और का समर्थन करने वाली विशेषताएं।

सी #/जावा v1.0 दृढ़ता से टाइप की गई भाषाएं थीं, लेकिन कभी-कभी आपको स्थैतिक टाइपिंग तोड़नी पड़ती थी क्योंकि कुछ सामान करने के लिए पर्याप्त अभिव्यक्ति नहीं थी और इसे स्थिर रूप से टाइप किया गया था (यानी आपको किसी वस्तु से खींचते समय, उदाहरण के लिए untyped संग्रह)।

जेनिक्स निश्चित रूप से स्थिति को बेहतर बनाते हैं और चीजें उन भाषाओं में भी मज़ेदार होती हैं जो उच्च क्रम जेनरिक (जैसे स्कैला) का समर्थन करती हैं।

) समेकन। यदि यह स्पष्ट है, तो मुझे इसे लिखने की आवश्यकता नहीं है। टाइप अनुमान इस के लिए एक अच्छा उपकरण है।

) एक महान पुस्तकालय। यदि इसकी अक्सर आवश्यकता होती है, तो मुझे इसे लिखने की आवश्यकता नहीं है।

-2

ट्यूरिंग-पूर्ण होने में सहायता करता है।

+2

ट्यूरिंग-पूर्ण नहीं होना एक प्रोग्रामिंग भाषा के रूप में एक भाषा को बहुत अयोग्य बनाता है। –

+0

@ मार्टिन: पूरी तरह से सच नहीं है। एक प्रोग्रामिंग भाषा विशिष्ट प्रकार की गणना या प्रसंस्करण के लिए पूरी तरह से उपयोगी हो सकती है, लेकिन सामान्य कार्यों में असमर्थ। गैर-ट्यूरिंग-पूर्ण आवश्यक रूप से उपयोगी गणना के अक्षम नहीं है। –

+0

@ जोन: शायद सिद्धांत में - लेकिन व्यावहारिक रूप से, कौन सी प्रोग्रामिंग भाषाएं हैं जो ट्यूरिंग पूर्ण नहीं हैं? गैर-ट्यूरिंग-पूर्ण भाषाओं की सभी टिप्पणियां जो इस प्रश्न (http://stackoverflow.com/questions/315340/practical-non-turing-complete-languages) के साथ आए थे, वे बहुत अकादमिक थे। मेरा मुद्दा यह है कि ट्यूरिंग पूर्ण होने के लिए यह अविश्वसनीय रूप से आसान है - असंबद्ध लूप को अनुमति दें और आप वहां बहुत अधिक हैं। सी ++ में टेम्पलेट्स को देखें - उन्होंने पूरी तरह से दुर्घटना से संकलन समय पर ट्यूरिंग पूर्णता हासिल की। –

1

मैं पूरी तरह से स्पष्ट, नामांकित, स्थैतिक टाइपिंग, यानी जावा-स्टाइल नहीं खड़ा कर सकता हूं। मैं प्रभावी रूप से भाषाओं की पेशकश निम्न में से कम से कम एक में है कि मैं केवल कार्यक्रम कर सकते हैं महसूस हो रहा है:

  1. बतख अजगर, PHP, पर्ल, रूबी के समान टाइपिंग।

  2. एक अच्छा टेम्पलेट प्रणाली है कि variadics, स्थिर अगर, आदि (D के टेम्पलेट प्रणाली की तरह) के साथ साथ कम से कम कुछ प्रकार प्रचार (जैसे सी # के var कीवर्ड या D के auto कीवर्ड) का समर्थन करता है। मैं थोड़ी देर के लिए डी का उपयोग कर रहा हूं और इसकी टेम्पलेट प्रणाली काफी अच्छी है कि मैं इसे अक्सर "संकलन-समय बतख टाइपिंग" के रूप में संदर्भित करता हूं।

इनमें से कम से कम एक के बिना मुझे लगता है कि मैं एक पूर्ण सीधे जैकेट में पकड़ा गया हूं।

3

समर्थन प्रथम श्रेणी (उर्फ उच्च क्रम)

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