Java a
int
etInteger
boolean
etBoolean
Cela semble un peu incohérent, pourquoi pas non plus
bool
vsBoolean
utiliser un nom plus court pour le type primitif?
ou
integer
vsInteger
pour garder les noms de type cohérents?
Je pense que C ++ avait décidé d'utiliser bool
un peu plus tôt que Java avait décidé d'utiliser boolean
, et peut-être aussi certaines extensions C (non standard à l'époque?), Donc il y aurait eu une priorité historique pour bool
. J'ai remarqué que j'essaie souvent instinctivement bool
au début (c'est une bonne chose que les éditeurs modernes le remarquent immédiatement sans compilation supplémentaire), donc ce serait bien de connaître la raison d'être de l'état actuel des choses.
Si quelqu'un se souvient (d'une partie de) l'histoire, ou peut même trouver et créer un lien vers une discussion historique pertinente sur le net, ce serait formidable.
boolean
est définitivement plus explicite quebool
. Je préfère demander pourquoiint
n'est pas appeléinteger
. Ma conjecture:int
etchar
où trop ancré pour être changé eninteger
etcharacter
, maisbool
n'était pas encore complètement établi.bool
type a été introduit dans C ++ en 1993. Java inclusboolean
dans sa première version en 1995, mais le projet Java lui-même a été lancé en 1991. Sans trouver d'autres sources de informations, je ne sais pas ce qui est venu en premier, ou quelle influence (le cas échéant) ils ont eu les uns sur les autres.boolean
type. (Oak a ensuite été renommé Java). Cela rapproche encore plus les dates, même si je ne vois toujours aucune preuve définitive de la préséance ou de l'influence dans l'une ou l'autre direction.double
etDouble
aussi.Réponses:
Sans entrer en contact avec des personnes réellement impliquées dans ces décisions de conception, je pense qu'il est peu probable que nous trouvions une réponse définitive. Cependant, sur la base des délais de développement de Java et de C ++, je suppose que Java a
boolean
été choisi avant ou en même temps que l'introductionbool
de C ++, et certainement avant,bool
était largement utilisé. Il est possible qu'il aitboolean
été choisi en raison de son histoire d'utilisation plus longue (comme dans l'algèbre booléenne), ou pour correspondre à d'autres langages (comme Pascal) qui avaient déjà unboolean
type.Contexte historique
Selon Evolving a language in and for the real world: C ++ 1991-2006 , le
bool
type a été introduit en C ++ en 1993.Java inclus
boolean
dans sa première version en 1995 ( Java Language Specification 1.0 ). La première spécification de langage que je puisse trouver est la spécification Oak 0.2 ( Oak a ensuite été renommée Java ). Cette spécification Oak est marquée "Copyright 1994", mais le projet lui-même a été lancé en 1991 et a apparemment eu une démo fonctionnelle à l'été 1992 .la source
En fait, Java est plus précis dans l'histoire ici. La théorie des valeurs vraies et fausses a été inventée par George Boole et est communément appelée l'algèbre de Boole en son honneur.
bool
est vraiment juste un raccourci pour éviter un nom plus long, cependant, étant donné la prise en charge de l'achèvement automatique des IDE modernes, ce n'est plus une raison valable (et n'était même pas de retour à l'époque où Java a décidé de le faireboolean
).Je n'ai pas fait partie du processus de décision pour Java, mais si quelqu'un se soucie de l'histoire, alors "l'algèbre booléenne" est la priorité historique pertinente, et on pourrait aussi bien remettre en question la décision C / C ++ sur la raison pour laquelle ils ont mutilé le nom de Boole en coupant le
e
.la source
creat()
.int
devrait êtreinteger
?Boolean
est une sorte de mal, compte tenu qu'il peut avoir 3 valeurs (Boolean.FALSE
,Boolean.TRUE
,null
) ... Point de symboles étant, langage de programmation et des mots réservés sont toujours un compromis de plusieurs facteurs, et la précision historique est probablement assez bas sur cette liste.null
.Je ne peux pas résoudre le problème de cohérence, mais il y a une longue histoire ici.
Pour autant que je m'en souvienne, l'Algol 60 a été la première langue à désigner ses types logiques comme «booléens». Algol 60 avait également des types comme «entier», «procédure», etc.
Vint Algol 68, et les abréviations semblaient être en vogue: «bool», «int», «proc», etc.
Ainsi, les concepteurs de langues peuvent choisir le style qu'ils aiment, et il y a un précédent.
la source