web-dev-qa-db-fra.com

Pourquoi Java nom de type primitif booléen n'est-il pas 'bool'?

Java a

  • int et Integer
  • boolean et Boolean

Cela semble un peu incohérent, pourquoi pas non plus

  • bool vs Boolean pour utiliser un nom plus court établi pour le type primitif?

ou

  • integer vs Integer pour garder les noms de type cohérents?

I pensez C++ avait décidé d'utiliser bool un peu plus tôt que Java a décidé d'utiliser boolean, et peut-être aussi certains ( non standard à l'époque?) Les extensions C aussi, donc il y aurait eu une priorité historique pour bool. J'ai remarqué que j'essayais souvent instinctivement d'utiliser bool au début (bonne chose les éditeurs modernes repérer immédiatement sans compilation supplémentaire), il serait donc agréable 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.

28
hyde

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 du calendrier de développement des deux Java et C++, je suppose que le boolean de Java a été choisi avant ou en même temps que l'introduction bool à C++, et certainement avant que bool ne soit largement utilisé. Il est possible que boolean ait été choisi en raison de son historique d'utilisation plus long (comme dans l'algèbre booléenne), ou pour correspondre à d'autres langages ( comme Pascal) qui avait déjà un type boolean.

Contexte historique

Selon évolution d'un langage dans et pour le monde réel: C++ 1991-2006 , le type bool a été introduit dans C++ en 1993.

Java a inclus boolean dans sa première version en 1995 ( Java Language Specification 1. ). La première spécification de langage que je puisse trouver est la spécification Oak 0.2 ( Oak a ensuite été renommé Java ). Cette spécification Oak est marquée "Copyright 1994", mais le projet lui-même a été lancé en 1991, et apparemment avait une démo fonctionnelle à l'été 1992 .

20
John Bartholomew

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 Algèbre booléenne) 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é d'opter pour boolean).

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 tout 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.

12
Frank