शब्दशः पाठ की व्यापक मात्रा का उपयोग करने की प्रवृत्ति, और बहुत कम पाठ का उपयोग करने की प्रवृत्ति ...
वर्बोसिटी खराब है क्योंकि:
- यह टाइपोग्राफिक त्रुटि के लिए अधिक अवसर का परिचय देता है
- इससे स्क्रीन या पेपर पर कोड पढ़ना, और / या पंचकार्ड पर दर्ज करना कठिन हो जाता है
- यह डिबग समय को बढ़ाता है
- यह उन्नयन / रखरखाव के लिए कठिन कोड की समझ बनाता है
- इससे अनपेक्षित कोड दोहराव हो सकता है
- यह कुछ हद तक वाक्य रचना त्रुटि की संभावना को बढ़ाता है
- यह कोडिंग लचीलापन कम कर देता है, उस में, अधिकांश वर्बोज़ भाषाएँ अत्यधिक संरचित होती हैं और एक ही बात कहने के लिए कई तरीके नहीं होते हैं।
- यह कोडिंग और संकलन समय बढ़ाता है
- यह अधिक संग्रहण स्थान ले सकता है।
स्पष्टता के लिए क्रियाशीलता का एक निश्चित स्तर आवश्यक है, हालांकि ...
वर्बोसिटी का न्यूनतम स्तर अच्छा है क्योंकि:
- मनुष्यों के लिए विशुद्ध रूप से प्रतीकात्मक कोड की तुलना में अर्थ मूल्य को पढ़ना और संलग्न करना आसान है
- चर और फ़ंक्शन नामकरण में, यह डिबग, पोर्ट और कोड बनाए रखना आसान बनाता है
- आधार स्तरीय भाषा संचालन और जटिल भाषाओं के कीवर्ड में, यह कम गलत संचालन / कीवर्ड असाइनमेंट की ओर जाता है।
कई लोगों के लिए बहुत ज्यादा संक्षिप्त आदेशों में से कुछ अद्भुत उदाहरण के पुराने बुनियादी स्टैंडबाई शामिल val(x$)
, str$(x)
और, chr$(x)
... इसके स्ट्रिंग प्रतिनिधित्व से एक नंबर लौटने के लिए, एक नंबर के लिए एक स्ट्रिंग लौटाने, और एक स्ट्रिंग के रूप में वापसी एकल वर्ण होने ascii मान x।
या C / C ++ पॉइंटर और रेफरेंस ऑपरेटर्स द्वारा &
और *
BASIC byref
कीवर्ड द्वारा। C / C ++ में, मेरे पास एक चर X हो सकता है, और उस चर के लिए एक पॉइंटर पास हो सकता है, लेकिन मुझे यह याद रखना होगा कि कौन सा पॉइंटर है और जो "पॉइंटर के रूप में पॉइंटर का उपयोग करता है जो इसे इंगित करता है"; बुनियादी तौर पर, मैं फंक्शन कॉल में एक ब्यॉर्फ कीवर्ड के साथ संदर्भ पास करता हूं, जो अधिक स्पष्ट है, लेकिन कम लचीला है:
def fn Foo(x byref as float) foo= (x += x+1)
...
Foo(x)
इस कोड में, x सामग्री झंडे के कारण संशोधित हो जाती है। कुछ जायके कॉल पर byref की अनुमति देते हैं, दूसरों को परिभाषा में, कुछ में।
क्रियात्मकता आकस्मिक प्रोग्रामर के लिए महत्वपूर्ण है ताकि प्रतीकात्मकता का उपयोग करना आसान हो; BASIC या python C / C ++ की तुलना में अधिक मानव पठनीय और अधिक क्रियाशील है, और इस प्रकार यह आकस्मिक प्रोग्रामर के लिए अधिक उपयोगी है; C / C ++ की terseness अधिक अनुभवी प्रोग्रामर के लिए बहुत बेहतर बनाती है, जिन्हें एक स्क्रीन पर अधिक कोड और अधिक जटिल कोड देखने की आवश्यकता होती है, लेकिन उन्हें विभिन्न प्रतीकात्मक संरचना सम्मेलनों को सीखना पड़ता है। सबसे दूर एपीएल है, जो लगभग पूरी तरह से मानव अपठनीय है।
एक अंतरंग रूप से संबंधित मुद्दा स्पष्टता है - terse कोड अक्सर अस्पष्ट होता है, और अत्यधिक वर्बोज़ कोड (AppleScript में) समान रूप से अस्पष्ट हो सकता है। किसी दिए गए भाषा के साथ परिचित होने से उस भाषा के भीतर ट्रिक कोड की स्पष्टता बढ़ जाती है - एक कच्ची शुरुआत, सी ++ कोड का सामना करना केवल फॉर्मूलों को पार्स करने में सक्षम होने की संभावना है, और बहुत अधिक कार्यात्मक बेसिक या पायथन कोड भी समझ से बहुत अधिक है, लेकिन ऐप्पलस्क्रिप्ट हो सकता है भाषा शब्दकोशों में पुनरावृत्ति के बिना, आम तौर पर हैरान हो जाना। कम से कम मैंने जानबूझकर बिना किसी आक्षेप के सामना किया है 7 सूचित ...
पुराने दिनों में
अतीत में एक और महत्वपूर्ण विचार, लेकिन एक जो अब शौक कोडर के लिए उतना महत्वपूर्ण नहीं है, ऑपरेशन और भंडारण स्थान है। (यह अभी भी उच्च अंत में महत्वपूर्ण है।) यह ध्यान में रखते हुए कि कई भाषाओं की व्याख्या की गई थी, विशेष रूप से बेसिक जायके, और कई और अधिक रन-टाइम संकलित किए गए थे, कोड स्थान महत्वपूर्ण था, खासकर जब डिस्क केवल 128KiB का आयोजन किया गया था, और व्यक्तिगत पंचकूला केवल 80B।
कई समाधान मौजूद थे - टोकन मूल रूप से अत्यंत सामान्य थे; अलग-अलग भाषा के कीवर्ड ऊपरी 128 या नियंत्रण वर्ण स्थान में 1 या 2 बाइट शब्द से कम हो गए थे। Tokenization नेतृत्व भी bytecode संकलन (सूचना और जेड मशीन के रूप में)।
कई ऑब्जेक्ट फ़ाइल संकलन और लिंकिंग का उपयोग अंतरिक्ष सीमाओं के आसपास करने के लिए भी किया गया था। एक 100KiB पास्कल कोड अनुभाग केवल 5KiB के लिए संकलित हो सकता है; कई संकलित फ़ाइलों को लिंक करके, कोई भी बड़े प्रारूप ड्राइव तक पहुंच के बिना बड़े पैमाने पर एप्लिकेशन का निर्माण कर सकता है (यह याद रखना कि 10MiB आश्चर्यजनक रूप से बड़ा था, और एक नई कार खरीदना महंगा)।
हालाँकि, अधिक प्रचलित भाषाओं को डिस्क और रेम दोनों के दिए गए हिस्से में अधिक कोड मिला, और इस तरह एक बार में बड़ी मात्रा में संकलन किया गया। ध्यान में रखते हुए: 1970 की शुरुआत में "मिनिकोमप्वाइंट्स" में केवल 64KiB का राम हो सकता था (हनीवेल 800 में 8 बैंकों में से प्रत्येक में 8B के 2048 शब्दों में से प्रत्येक के आधार पर 4 बैंक थे)। APL और इसी तरह की प्रतीकात्मक भाषाएं 1B प्रति निर्देश प्लस और इसके ऑपरेंड्स के करीब पहुंचीं, प्रति इंस्ट्रक्शन प्लस ऑपरेंड्स की तुलना में बहुत बड़ा 3B-10B। (यह पंचकार्डों पर टाइप करने का एक बुरा सपना था, खासकर जब से प्रतीक अनिवार्य रूप से टाइप-बॉल पर एक फ़ॉन्ट थे, और कई कार्डपंचों में चाबी पर प्रतीक नहीं थे ...)
इसके अलावा, ध्यान रखें कि कार्ड को मिटाया नहीं जा सकता ... और कार्ड पर कई प्रोग्राम दर्ज किए गए थे। व्यक्तिगत रूप से महंगा नहीं होने के बावजूद, कार्ड पर आपका कोड जितना अधिक संपीड़ित हो सकता है, उतना ही कम, जिसकी आपको आवश्यकता होती है, और जितने बड़े कार्यक्रम हो सकते हैं, या उससे कम खर्चीले हो सकते हैं। यह इस कारण का हिस्सा है कि BASIC के पास अधिकांश जायकों में प्रति पंक्ति कई निर्देशों का एक संयोजन है - यह पंच कार्डों को बचाने के लिए पेश किया गया था। (या तो मेरा वैक्स बेसिक प्रोग्रामिंग पाठ कहता है।) जबकि मैंने कार्ड-रीडर के लिए प्रोग्राम नहीं किया है, मैंने फोरट्रान, बेसिक, एपीएल और कुछ अन्य उच्च प्रतीकात्मक भाषाओं में हनीवेल 800 के लिए कार्ड पंचिंग किया है।