भाषा के डिजाइन के कई पहलुओं की तरह, यह प्रदर्शन के खिलाफ लालित्य का व्यापार बंद हो जाता है (पूर्व भाषाओं से कुछ ऐतिहासिक प्रभाव का उल्लेख नहीं करना)।
वैकल्पिक
यह एक प्रोग्रामिंग भाषा बनाने के लिए निश्चित रूप से (और काफी सरल) है जिसमें एक ही प्रकार की प्राकृतिक संख्याएं हैं nat
। अकादमिक अध्ययन के लिए उपयोग की जाने वाली लगभग सभी प्रोग्रामिंग भाषाओं (जैसे पीसीएफ, सिस्टम एफ) में यह एकल नंबर प्रकार है, जो कि अधिक सुंदर समाधान है, जैसा कि आपने सर्माइज़ किया है। लेकिन व्यवहार में भाषा डिजाइन केवल लालित्य के बारे में नहीं है; हमें प्रदर्शन पर भी विचार करना चाहिए (प्रदर्शन किस हद तक माना जाता है यह भाषा के अभिप्रेरित अनुप्रयोग पर निर्भर करता है)। प्रदर्शन में समय और स्थान की कमी दोनों शामिल हैं।
अंतरिक्ष की कमी
प्रोग्रामर को चुनने से बाइट्स की संख्या का चयन होता है, स्मृति-बाधित कार्यक्रमों में जगह बचा सकता है। यदि आपकी सभी संख्याएं 256 से कम होने जा रही हैं, तो आप 8 गुना byte
एस के रूप में उपयोग कर सकते हैं long
, या अन्य जटिल वस्तुओं के लिए सहेजे गए भंडारण का उपयोग कर सकते हैं । मानक जावा एप्लिकेशन डेवलपर को इन बाधाओं के बारे में चिंता करने की ज़रूरत नहीं है, लेकिन वे आते हैं।
दक्षता
यहां तक कि अगर हम अंतरिक्ष की उपेक्षा करते हैं, तो हम अभी भी सीपीयू द्वारा विवश हैं, जिसमें केवल निर्देश हैं जो एक निश्चित संख्या में बाइट्स पर काम करते हैं (64-बिट वास्तुकला पर 8 बाइट्स)। साधन एक भी 8-बाइट उपलब्ध कराने कि long
, एक असीम प्राकृतिक संख्या प्रकार के होने की तुलना में काफी सरल भाषा के कार्यान्वयन होगा सीधे एक करने के लिए अंकगणितीय आपरेशनों मैप करने के लिए सक्षम होने से प्रकार एकल अंतर्निहित सीपीयू निर्देश। यदि आप प्रोग्रामर को मनमाने तरीके से बड़ी संख्या में उपयोग करने की अनुमति देते हैं, तो एक एकल अंकगणितीय ऑपरेशन को जटिल मशीन निर्देशों के अनुक्रम में मैप किया जाना चाहिए , जो प्रोग्राम को धीमा कर देगा। यह वह बिंदु (1) है जिसे आपने उठाया था।
फ्लोटिंग-पॉइंट प्रकार
अब तक की चर्चा में केवल संबंधित पूर्णांक हैं। फ्लोटिंग-पॉइंट प्रकार एक जटिल जानवर हैं, जिसमें अत्यंत सूक्ष्म शब्दार्थ और किनारे-मामले हैं। इस प्रकार, भले ही हम आसानी से बदल सकते int
, long
, short
, और byte
एक एकल के साथ nat
प्रकार, यह स्पष्ट नहीं है कि क्या चल बिन्दु संख्या के प्रकार भी है । वे वास्तविक संख्याएं नहीं हैं, जाहिर है, क्योंकि प्रोग्रामिंग भाषा में वास्तविक संख्याएं मौजूद नहीं हो सकती हैं। वे काफी तर्कसंगत संख्याएँ नहीं हैं, या तो (यदि यह वांछित है तो एक तर्कसंगत प्रकार बनाने के लिए आगे-आगे है)। मूल रूप से, IEEE ने थोड़े अनुमानित वास्तविक संख्याओं के लिए एक तरह से निर्णय लिया, और सभी भाषाएँ (और प्रोग्रामर) तब से उनके साथ अटकी हुई हैं।
आखिरकार:
शायद प्रोग्रामर नहीं चाहेगा कि कोई व्यक्ति एक निश्चित आकार की तुलना में बड़ी संख्या का उपयोग करने में सक्षम हो और यह उन्हें इसे सीमित करने देता है।
यह एक वैध कारण नहीं है। सबसे पहले, मैं ऐसी किसी भी स्थिति के बारे में नहीं सोच सकता जिसमें प्रकार स्वाभाविक रूप से संख्यात्मक सीमाओं को सांकेतिक शब्दों में बदलना कर सकते हैं, न कि उन अवसरों का उल्लेख करने के लिए जो खगोलीय रूप से कम हैं जो प्रोग्रामर लागू करना चाहता है वह किसी भी प्रकार के आदिम प्रकारों के आकार के अनुरूप होगा।