Java tiene
int
yInteger
boolean
yBoolean
Esto parece un poco inconsistente, ¿por qué no?
bool
vsBoolean
para usar un nombre más corto establecido para el tipo primitivo?
o
integer
vsInteger
para mantener los nombres de tipo consistentes?
Creo que C ++ había decidido usar bool
un poco antes de lo que Java decidió usar boolean
, y tal vez también algunas extensiones C (¿no estándar en ese momento?), Por lo que habría tenido una precedencia histórica bool
. Me he dado cuenta de que a menudo intento usar instintivamente bool
al principio (algo bueno, los editores modernos inmediatamente detectan esto sin una ronda de compilación adicional), por lo que sería bueno saber la razón detrás del estado actual de las cosas.
Si alguien recuerda (una parte de) la historia, o incluso puede encontrar y vincularse a una discusión histórica relevante en la red, sería genial.
boolean
es definitivamente más explícito quebool
. Prefiero preguntar por quéint
no se llamainteger
. Mi conjetura:int
ychar
dónde estaba demasiado arraigado para ser cambiadointeger
ycharacter
, perobool
aún no estaba completamente establecido.bool
tipo se introdujo en C ++ en 1993. Java se incluyóboolean
en su primer lanzamiento en 1995, pero el proyecto Java se inició en 1991. Sin encontrar más fuentes de información, no me queda claro qué vino primero, o qué influencia (si alguna) tuvieron entre sí.boolean
tipo. (Oak luego fue renombrado a Java). Eso empuja las fechas aún más cerca, aunque todavía no veo evidencia definitiva que muestre precedencia o influencia en ninguna dirección.double
yDouble
también.Respuestas:
Sin entrar en contacto con personas que realmente estuvieron involucradas en estas decisiones de diseño, creo que es poco probable que encontremos una respuesta definitiva. Sin embargo, en base a los plazos del desarrollo de Java y C ++, conjeturaría que
boolean
se eligió Java antes, o al mismo tiempo, la introducciónbool
a C ++, y ciertamente antesbool
se usó ampliamente. Es posible queboolean
se haya elegido debido a su larga historia de uso (como en álgebra booleana), o para que coincida con otros idiomas (como Pascal) que ya tenían unboolean
tipo.Contexto histórico
Según Evolving a language in and for the real world: C ++ 1991-2006 , el
bool
tipo se introdujo en C ++ en 1993.Java incluido
boolean
en su primer lanzamiento en 1995 ( Java Language Specification 1.0 ). La primera especificación de lenguaje que puedo encontrar es la especificación Oak 0.2 ( luego se cambió el nombre de Oak a Java ). Esa especificación de Oak está marcada como "Copyright 1994", pero el proyecto en sí se inició en 1991 y aparentemente tuvo una demostración en funcionamiento para el verano de 1992 .fuente
En realidad, Java es más preciso para la historia aquí. La teoría de los valores verdaderos y falsos fue inventada por George Boole y comúnmente se conoce como álgebra booleana en su honor.
bool
es realmente solo un atajo para evitar un nombre más largo, sin embargo, dado el soporte de autocompletado de IDEs modernos, esto ya no es una razón válida (y ni siquiera fue en los días en que Java decidió hacerloboolean
).No he sido parte del proceso de decisión para Java, pero si a alguien le importa la historia, entonces "álgebra booleana" es la precedencia histórica relevante, y uno podría cuestionar la decisión de C / C ++ sobre por qué mutilaron el nombre de Boole cortando el
e
.fuente
creat()
.int
debería serinteger
?Boolean
es un poco mal, teniendo en cuenta que puede tener 3 valores (Boolean.FALSE
,Boolean.TRUE
,null
) ... punto que se encuentre, la programación de los símbolos del lenguaje y las palabras reservadas son siempre un compromiso de varios factores, y la precisión histórica es probablemente bastante bajo en esa lista.null
.No puedo abordar el problema de coherencia, pero hay una larga historia aquí.
Por lo que recuerdo, Algol 60 fue el primer idioma en referirse a sus tipos lógicos como 'booleano'. Algol 60 también tenía tipos como 'entero', 'procedimiento', etc.
Llegó Algol 68, y las abreviaturas parecían estar de moda: 'bool', 'int', 'proc', etc.
Entonces, los diseñadores de idiomas pueden elegir el estilo que quieran, y hay un precedente para ello.
fuente