Ява имеет
int
а такжеInteger
boolean
а такжеBoolean
Это кажется немного противоречивым, почему бы и нет
bool
противBoolean
использования установленного более короткого имени для примитивного типа?
или
integer
против того,Integer
чтобы сохранить имена типов согласованными?
Я думаю, что C ++ решил использовать bool
немного раньше, чем Java решил использовать boolean
, и, возможно, также некоторые (нестандартные в то время?) Расширения C, так что был бы исторический приоритет для bool
. Я заметил, что bool
сначала я часто инстинктивно пытаюсь использовать это (хорошо, что современные редакторы сразу замечают это без дополнительного раунда компиляции), поэтому было бы хорошо узнать обоснование текущего положения вещей.
Если кто-то запомнит (частично) эту историю или даже сможет найти и связать ее с соответствующей исторической дискуссией в сети, это было бы здорово.
boolean
определенно более явный, чемbool
. Я бы лучше спросил почемуint
не называетсяinteger
. Мое предположение:int
иchar
где слишком укоренилось, чтобы быть измененнымinteger
иcharacter
, ноbool
еще не было полностью установлено.bool
тип был представлен в C ++ в 1993 году. Java была включенаboolean
в его первый выпуск в 1995 году, но сам проект Java был запущен в 1991 году. Без поиска дополнительных источников информация, мне не ясно, что было первым, или какое влияние они оказали друг на друга.boolean
тип. (Дуб был позже переименован в Java). Это подталкивает даты еще ближе, хотя я все еще не вижу определенных доказательств, чтобы показать приоритет или влияние, в любом направлении.double
иDouble
также.Ответы:
Не связываясь с людьми, которые действительно были вовлечены в эти дизайнерские решения, я думаю, что мы вряд ли найдем окончательный ответ. Однако, исходя из сроков разработки как Java, так и C ++, я бы предположил, что Java
boolean
была выбрана до или одновременно с введениемbool
в C ++ и, конечно же, раньшеbool
широко использовалась. Возможно, этоboolean
было выбрано из-за более длинной истории использования (как в булевой алгебре) или из-за соответствия другим языкам (таким как Паскаль), которые уже имелиboolean
тип.Исторический контекст
Согласно « Развитие языка в реальном мире»: C ++ 1991-2006 , этот
bool
тип был введен в C ++ в 1993 году.Java включена
boolean
в свой первый выпуск в 1995 году ( Java Language Specification 1.0 ). Самая ранняя языковая спецификация, которую я могу найти, - это спецификация Oak 0.2 ( впоследствии она была переименована в Java ). Эта спецификация Дуба помечена как «Copyright 1994», но сам проект был начат в 1991 году и, по-видимому, имел рабочую демонстрацию к лету 1992 года .источник
На самом деле, Java более точна в истории. Теория истинных и ложных ценностей была изобретена Джорджем Булем и обычно упоминается как булева алгебра в его честь.
bool
на самом деле это просто ярлык, позволяющий избежать более длинного имени, однако, учитывая поддержку автозавершения современных IDE, это уже не является веской причиной (и даже не было в те времена, когда Java решила пойти на этоboolean
).Я не участвовал в процессе принятия решений по Java, но если кто-то заботится об истории, то «булева алгебра» является релевантным историческим приоритетом, и с тем же успехом можно поставить под сомнение решение C / C ++ о том, почему они искалечили имя Буля, обрезав его.
e
.источник
creat()
.int
должно бытьinteger
?Boolean
это своего рода плохо, учитывая это может иметь 3 значения (Boolean.FALSE
,Boolean.TRUE
,null
) ... Суть в том, программирование символов языка и зарезервированные слова всегда компромисс нескольких факторов, и исторической точности вероятно, довольно низко в этом списке.null
.Я не могу решить проблему согласованности, но здесь есть длинная история.
Насколько я помню, Algol 60 был первым языком, который обозначил свои логические типы как «Boolean». Алгол 60 также имел такие типы, как «целое число», «процедура» и т. Д.
Вскоре появился Алгол 68, и в моде появились сокращения: «bool», «int», «proc» и т. Д.
Таким образом, языковые дизайнеры могут выбрать любой стиль, который им нравится, и для этого есть прецедент.
источник