जावा बूलियन आदिम प्रकार का नाम 'बूल' क्यों नहीं है?


28

जावा है

  • int तथा Integer
  • boolean तथा Boolean

यह थोड़ा असंगत लगता है, या तो क्यों नहीं

  • boolबनाम Booleanआदिम प्रकार के लिए एक स्थापित छोटे नाम का उपयोग करने के लिए?

या

  • integerबनाम Integerप्रकार नाम रखने के लिए बनाम ?

मुझे लगता है किbool जावा का उपयोग करने का निर्णय लेने से पहले सी ++ ने काफी थोड़ा उपयोग करने का फैसला किया था boolean, और शायद कुछ (गैर-मानक भी?) सी एक्सटेंशन भी, इसलिए इसके लिए ऐतिहासिक पूर्वता रही होगी bool। मैंने देखा है कि मैं अक्सर सहज रूप boolसे पहली बार उपयोग करने की कोशिश करता हूं (अच्छी बात यह है कि आधुनिक संपादकों ने तुरंत अतिरिक्त संकलन दौर के बिना इसे हाजिर कर दिया है), इसलिए वर्तमान स्थिति के पीछे तर्क को जानना अच्छा होगा।

यदि किसी को कहानी याद है (या उसका एक हिस्सा), या नेट में प्रासंगिक ऐतिहासिक चर्चा को भी ढूंढ सकता है और लिंक कर सकता है, तो यह बहुत अच्छा होगा।


8
booleanकी तुलना में निश्चित रूप से अधिक स्पष्ट है bool। मैं पूछना चाहता हूँ क्यों intनहीं कहा जाता है integer। मेरा अनुमान है: intऔर charजहां भी जमा हुआ करने के लिए बदल करने के लिए किया जा integerऔर characterहै, लेकिन boolअभी तक पूरी तरह से स्थापित नहीं किया गया था।
जोकिम सॉर

"मुझे लगता है कि C ++ ने बूल का उपयोग करने का निर्णय लिया था, जबकि जावा ने बूलियन का उपयोग करने का निर्णय लिया था" आप ऐसा क्यों सोचते हैं?
जॉन बार्थोलोम्यू

6
के अनुसार में और वास्तविक दुनिया के लिए एक भाषा का विकास: सी ++ 1991-2006 , boolप्रकार सी ++ 1993 में जावा शामिल करने के लिए पेश किया गया था boolean1995 में अपनी पहली रिलीज में, लेकिन जावा परियोजना की आगे स्रोतों की खोज के बिना 1991 में शुरू किया गया था जानकारी, यह मेरे लिए स्पष्ट नहीं है कि कौन पहले आया था, या क्या (यदि कोई है) वे एक दूसरे पर प्रभाव डालते हैं।
जॉन बार्थोलोम्यू

3
ओक भाषा विनिर्देश (संस्करण 0.2, 1994 कॉपीराइट) भी शामिल हैं booleanप्रकार। (ओक को बाद में जावा नाम दिया गया था)। वह तारीखों को और भी करीब धकेलता है, हालांकि मुझे अभी भी किसी भी दिशा में पूर्वता, या प्रभाव दिखाने के लिए कोई निश्चित प्रमाण नहीं दिखते हैं।
जॉन बार्थोलोम्यू

यह असंगत नहीं है, doubleऔर Doubleभी हैं।
भंवर

जवाबों:


20

उन लोगों के संपर्क में आए बिना जो वास्तव में इन डिजाइन निर्णयों में शामिल थे, मुझे लगता है कि हम एक निश्चित उत्तर खोजने की संभावना नहीं रखते हैं। हालाँकि, जावा और C ++ दोनों के विकास की समयसीमा के आधार पर, मैं अनुमान लगाऊँगा कि Java booleanको पहले चुना गया था, या समकालीन boolरूप से, C ++ का परिचय , और निश्चित रूप से पहले boolव्यापक उपयोग में था। यह संभव है कि booleanइसके उपयोग के लंबे इतिहास (बूलियन बीजगणित में) के रूप में चुना गया था, या अन्य भाषाओं (जैसे पास्कल) से मेल खाने के लिए जो पहले से ही एक booleanप्रकार था।

ऐतिहासिक संदर्भ

वास्तविक भाषा: C ++ 1991-2006 के लिए एक भाषा विकसित करने के अनुसार , boolप्रकार 1993 में C ++ में पेश किया गया था।

जावा boolean1995 में अपनी पहली रिलीज ( जावा लैंग्वेज स्पेसिफिकेशन 1.0 ) में शामिल हुआ। सबसे शुरुआती भाषा विनिर्देश मैं पा सकता हूं ओक 0.2 विनिर्देशन ( ओक को बाद में जावा में बदल दिया गया था )। उस ओक स्पेसिफिकेशन को "कॉपीराइट 1994" के रूप में चिह्नित किया गया है, लेकिन यह परियोजना 1991 में शुरू की गई थी, और जाहिर तौर पर 1992 की गर्मियों तक काम करने का डेमो था


12

दरअसल, जावा यहां के इतिहास के लिए अधिक सटीक है। सच्चे और झूठे मूल्यों का सिद्धांत जॉर्ज बोले द्वारा आविष्कार किया गया था और आमतौर पर उनके सम्मान में बूलियन बीजगणित के रूप में जाना जाता है ।

boolअब वास्तव में एक लंबे नाम से बचने के लिए एक शॉर्टकट है, हालांकि, आधुनिक आईडीई के ऑटो-पूरा समर्थन को देखते हुए, यह अब एक वैध कारण नहीं है (और उन दिनों में भी वापस नहीं आया था जब जावा ने जाने का फैसला किया था boolean)।

मैं जावा के लिए निर्णय प्रक्रिया का हिस्सा नहीं रहा हूं, लेकिन अगर कोई इतिहास की परवाह करता है, तो "बुलियन बीजगणित" प्रासंगिक ऐतिहासिक मिसाल है, और कोई भी C / C ++ के फैसले पर सवाल उठा सकता है कि उन्होंने बोलेओ के नाम को काटकर अलग क्यों किया। e


5
फ़ाइल बनाने के लिए POSIX कॉल को एक ही कारण कहा जाता है creat()
ब्लरफेल

5
तो आप कह रहे हैं intहोना चाहिए integer?

4
आप ऐतिहासिक दृष्टि से सही होना चाहते हैं, तो मुझे लगता है कि Boolean, बुरा की तरह है पर विचार यह 3 मान हो सकते हैं ( Boolean.FALSE, Boolean.TRUE, null) ... प्वाइंट जा रहा है, प्रोग्रामिंग भाषा प्रतीकों और आरक्षित शब्द हमेशा कई कारकों में से एक समझौता कर रहे हैं, और ऐतिहासिक सटीकता है शायद उस सूची में बहुत कम है।
हाईड

2
मेरा ऐतिहासिक रूप से सटीक होने का कोई इरादा नहीं है, लेकिन यह मत भूलो, कि सभी भाषाएं उस अरब-डॉलर-गलती के लिए अनुमति नहीं देती हैं null
फ्रैंक

2
@ फ्रेंक हे, मैं सिर्फ एक विशिष्ट NullPointerException स्थिति को नॉर एरर रिपोर्टिंग और हैंडलिंग में परिवर्तित कर रहा हूं, और LALALAA को सक्रिय रूप से भूलने की कोशिश कर रहा हूं कि आप LALALAA क्या नहीं सुन रहे हैं ; ;-)
hyde

-2

मैं स्थिरता के मुद्दे को संबोधित नहीं कर सकता, लेकिन यहां एक लंबा इतिहास है।

जहाँ तक मुझे याद है, अल्गोल 60 पहली ऐसी भाषा थी, जिसके तार्किक प्रकारों को 'बुलियन' कहा गया है। अल्गोल ६० में भी 'पूर्णांक ’, had प्रक्रिया’ इत्यादि प्रकार थे।

अल्जोल 68 के साथ आया, और संक्षिप्त रूप से प्रचलित हुआ: 'बूल', 'इंट', 'प्रोक', आदि।

इसलिए, भाषा डिजाइनर जो भी शैली पसंद करते हैं, चुन सकते हैं और इसके लिए एक मिसाल है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.