Java hat
int
undInteger
boolean
undBoolean
Dies scheint ein bisschen inkonsistent, warum auch nicht
bool
vsBoolean
einen etablierten kürzeren Namen für primitiven Typ verwenden?
oder
integer
vsInteger
, um Typnamen konsistent zu halten?
Ich denke, C ++ hatte sich entschieden, bool
einiges früher als Java zu verwenden boolean
, und vielleicht auch einige (zu der Zeit nicht standardmäßige?) C-Erweiterungen, für die es also einen historischen Vorrang gegeben hätte bool
. Mir ist aufgefallen, dass ich zunächst oft instinktiv versuche, etwas zu verwenden bool
(eine gute Sache, dass moderne Redakteure dies sofort ohne zusätzliche Kompilierungsrunde erkennen), daher wäre es schön, die Gründe für den aktuellen Stand der Dinge zu kennen.
Wenn sich jemand an einen Teil der Geschichte erinnert oder sogar relevante historische Diskussionen im Netz finden und verknüpfen kann, wäre das großartig.
boolean
ist definitiv expliziter alsbool
. Ich würde lieber fragen, warumint
nicht angerufen wirdinteger
. Meine Vermutung:int
undchar
wo zu tief verwurzelt, um ininteger
und geändert zu werdencharacter
, war aberbool
noch nicht vollständig etabliert.bool
Typ 1993 in C ++ eingeführt. Java warboolean
in seiner ersten Veröffentlichung 1995 enthalten, aber das Java-Projekt selbst wurde 1991 gestartet. Ohne weitere Quellen für C ++ zu finden Information, es ist mir nicht klar, was zuerst kam oder welchen (wenn überhaupt) Einfluss sie aufeinander hatten.boolean
Typ. (Oak wurde später in Java umbenannt). Das bringt die Daten noch näher zusammen, obwohl ich immer noch keine eindeutigen Beweise dafür sehe, dass in beiden Richtungen Vorrang oder Einfluss besteht.double
undDouble
auch.Antworten:
Ohne Kontakt zu Personen aufzunehmen, die tatsächlich an diesen Entwurfsentscheidungen beteiligt waren, ist es meiner Meinung nach unwahrscheinlich, dass wir eine endgültige Antwort finden. Basierend auf den Zeitplänen für die Entwicklung von Java und C ++ würde ich jedoch vermuten, dass Java
boolean
vor oder gleichzeitig mit der Einführungbool
in C ++ ausgewählt wurde und sicherlich auchbool
schon in großem Umfang eingesetzt wurde. Möglicherweiseboolean
wurde dies aufgrund der längeren Verwendungsdauer (wie in der Booleschen Algebra) oder aufgrund der Übereinstimmung mit anderen Sprachen (wie Pascal) gewählt, die bereits einenboolean
Typ hatten.Historischer Zusammenhang
Laut Evolving einer Sprache in und für die reale Welt: C ++ 1991-2006 wurde der
bool
Typ 1993 in C ++ eingeführt.Java ist
boolean
in seiner ersten Version im Jahr 1995 enthalten ( Java Language Specification 1.0 ). Die früheste Sprachspezifikation, die ich finden kann, ist die Oak 0.2-Spezifikation ( Oak wurde später in Java umbenannt ). Diese Oak-Spezifikation ist mit "Copyright 1994" gekennzeichnet, aber das Projekt selbst wurde 1991 gestartet und hatte anscheinend bis zum Sommer 1992 eine funktionierende Demo .quelle
Tatsächlich ist Java hier historischer. Die Theorie der wahren und falschen Werte wurde von George Boole erfunden und wird ihm zu Ehren gemeinhin als Boolesche Algebra bezeichnet .
bool
ist eigentlich nur eine Abkürzung, um einen längeren Namen zu vermeiden. Angesichts der Unterstützung moderner IDEs für die automatische Vervollständigung ist dies jedoch kein gültiger Grund mehr (und war noch nicht einmal in den Tagen, in denen sich Java für entschieden hatboolean
).Ich war nicht Teil des Entscheidungsprozesses für Java, aber wenn sich jemand für die Geschichte interessiert, dann ist "Boolesche Algebra" der relevante historische Vorrang, und man könnte genauso gut die C / C ++ - Entscheidung in Frage stellen, warum sie Booles Namen durch Abschneiden verstümmelt haben die
e
.quelle
creat()
.int
sollte es seininteger
?Boolean
ist ein bisschen schlecht, wenn man bedenkt es 3 Werte haben kann (Boolean.FALSE
,Boolean.TRUE
,null
) ... Punkt ist, Programmiersprache Symbole und reservierte Worte sind immer ein Kompromiss aus verschiedenen Faktoren ab , und die historische Genauigkeit ist wahrscheinlich ziemlich niedrig auf dieser Liste.null
.Ich kann das Konsistenzproblem nicht ansprechen, aber es gibt hier eine lange Geschichte.
Soweit ich mich erinnere, hat Algol 60 als erste Sprache seine logischen Typen als "Boolean" bezeichnet. Algol 60 hatte auch Typen wie 'Ganzzahl', 'Prozedur' usw.
Algol 68 folgte, und Abkürzungen schienen in Mode zu sein: 'bool', 'int', 'proc' usw.
So können Sprachdesigner wählen, welchen Stil sie mögen, und es gibt einen Präzedenzfall dafür.
quelle