Java ma
int
iInteger
boolean
iBoolean
To wydaje się trochę niespójne, dlaczego nie
bool
vsBoolean
użyć ustalonej krótszej nazwy dla typu pierwotnego?
lub
integer
vsInteger
aby zachować spójność nazw typów?
Wydaje mi się, że C ++ zdecydował się użyć bool
nieco wcześniej niż Java boolean
, a może także niektóre (niestandardowe w tamtym czasie?) Rozszerzenia C, więc byłby to historyczny precedens bool
. Zauważyłem, że często bool
od razu instynktownie próbuję użyć (dobrze, że nowi redaktorzy natychmiast zauważają to bez dodatkowej rundy kompilacji), więc miło byłoby poznać uzasadnienie obecnego stanu rzeczy.
Jeśli ktoś pamięta (część) historii lub może nawet znaleźć odpowiednią link do historycznej dyskusji w sieci i nawiązać do niej, byłoby świetnie.
boolean
jest zdecydowanie bardziej wyraźny niżbool
. Wolałbym zapytać, dlaczegoint
się nie nazywainteger
. Zgaduję:int
ichar
gdzie zbyt zakorzenione zostać zmieniona nainteger
acharacter
, alebool
nie został jeszcze w pełni ustalone.bool
typ ten został wprowadzony do C ++ w 1993 r. Java zawarłaboolean
w swoim pierwszym wydaniu w 1995 r., Ale sam projekt Java został uruchomiony w 1991 r. Bez znalezienia dalszych źródeł informacji, nie jest dla mnie jasne, co było pierwsze, ani jaki (jeśli w ogóle) wpływ mieli na siebie nawzajem.boolean
typ. (Nazwa Oak została później zmieniona na Java). To przybliża daty jeszcze bliżej, chociaż wciąż nie widzę żadnych wyraźnych dowodów wskazujących na pierwszeństwo lub wpływ w obu kierunkach.double
iDouble
również.Odpowiedzi:
Bez kontaktu z ludźmi, którzy faktycznie byli zaangażowani w te decyzje projektowe, myślę, że raczej nie znajdziemy ostatecznej odpowiedzi. Jednak w oparciu o ramy czasowe rozwoju zarówno Java, jak i C ++, przypuszczam, że Java
boolean
została wybrana przed wprowadzeniembool
do C ++ lub jednocześnie z nim , a już na pewnobool
była w powszechnym użyciu. Możliwe, żeboolean
został wybrany ze względu na dłuższą historię użytkowania (jak w Algebrze Boolean) lub w celu dopasowania innych języków (takich jak Pascal), które już miałyboolean
typ.Kontekst historyczny
Według Evolving języka w prawdziwym świecie: C ++ 1991-2006 ,
bool
typ ten został wprowadzony do C ++ w 1993 roku.Java zawarta
boolean
w pierwszym wydaniu w 1995 r. ( Java Language Specification 1.0 ). Najwcześniejszą specyfikacją języka, jaką udało mi się znaleźć, była specyfikacja Oak 0.2 ( później nazwa Oak została zmieniona na Java ). Ta specyfikacja Oak jest oznaczona jako „Copyright 1994”, ale sam projekt rozpoczął się w 1991 roku i najwyraźniej miał działającą wersję demonstracyjną do lata 1992 roku .źródło
W rzeczywistości Java jest tutaj dokładniejsza od historii. Teoria prawdziwych i fałszywych wartości została wynaleziona przez George'a Boole'a i na jego cześć jest powszechnie określana jako Algebra Boolean .
bool
jest tak naprawdę tylko skrótem, aby uniknąć dłuższej nazwy, jednak biorąc pod uwagę wsparcie współczesnych IDE w automatycznym uzupełnianiu, nie jest to już ważny powód (i nie było nawet w czasach, w których Java zdecydowała się wybraćboolean
).Nie brałem udziału w procesie decyzyjnym dla Javy, ale jeśli ktoś troszczy się o historię, to „algebra boolowska” jest odpowiednim historycznym precedensem i równie dobrze można kwestionować decyzję C / C ++, dlaczego okaleczył imię Boole'a, odcinając
e
.źródło
creat()
.int
powinno byćinteger
?Boolean
jest trochę zły, biorąc pod uwagę to może mieć 3 wartości (Boolean.FALSE
,Boolean.TRUE
,null
) ... Punkt istota, programowanie symbole językowe i Reserved słowa są zawsze kompromisem od kilku czynników, a dokładność jest historyczny prawdopodobnie dość nisko na tej liście.null
.Nie mogę rozwiązać problemu spójności, ale tutaj jest długa historia.
O ile pamiętam, Algol 60 był pierwszym językiem, który nazywał swoje logiczne typy „Boolean”. Algol 60 miał również typy takie jak „liczba całkowita”, „procedura” itp.
Wraz z Algolem 68 pojawiły się modne skróty: „bool”, „int”, „proc” itd.
Projektanci języków mogą więc wybrać styl, który im się podoba, i jest to precedens.
źródło