Perché il nome del tipo primitivo booleano Java non è 'bool'?

28

Java ha

  • int e Integer
  • boolean e Boolean

Questo sembra un po 'incoerente, perché no?

  • bool vs Boolean per usare un nome più breve stabilito per il tipo primitivo?

o

  • integer vs Integer per mantenere coerenti i nomi dei tipi?

I penso C ++ ha deciso di usare bool un po 'prima di Java ha deciso di usare boolean , e forse anche alcune estensioni C (non standard allora?), quindi ci sarebbe stata la precedenza storica per bool . Ho notato che spesso istintivamente provo a usare bool all'inizio (buona cosa gli editori moderni lo individuano immediatamente senza una compilazione extra), quindi sarebbe bello conoscere la logica alla base dello stato attuale delle cose.

Se qualcuno ricorda (una parte della) storia, o può persino trovare e collegare alla discussione storica pertinente nella rete, sarebbe fantastico.

    
posta hyde 21.03.2013 - 11:05
fonte

3 risposte

20

Senza entrare in contatto con persone che sono state effettivamente coinvolte in queste decisioni di progettazione, penso che difficilmente troveremo una risposta definitiva. Tuttavia, basandomi sulle linee temporali dello sviluppo sia di Java che di C ++, direi che il boolean di Java è stato scelto prima o contemporaneamente con l'introduzione di bool in C ++ e certamente prima che bool fosse ampiamente utilizzato. È possibile che sia stato scelto boolean a causa della sua più lunga cronologia di utilizzo (come in Algebra booleana), o per abbinare altri linguaggi (come Pascal) che avevano già un tipo boolean .

Contesto storico

Secondo Evoluzione di una lingua in e per il mondo reale: C ++ 1991-2006 , la% il tipo dibool è stato introdotto in C ++ nel 1993.

Java incluso boolean nella sua prima versione nel 1995 ( Specifica lingua Java 1.0 ) . La prima specifica del linguaggio che riesco a trovare è la specifica Oak 0.2 (Oak è stato successivamente rinominato in Java ). Quella specifica Oak è contrassegnata come "Copyright 1994", ma il progetto stesso è stato avviato nel 1991 e apparentemente ha avuto una demo funzionante per l'estate del 1992 .

    
risposta data 23.03.2013 - 15:25
fonte
12

In realtà, qui Java è più preciso della cronologia. La teoria dei valori veri e falsi è stata inventata da George Boole e viene comunemente chiamata Algebra booleana in suo onore.

bool è in realtà solo una scorciatoia per evitare un nome più lungo, tuttavia, dato il supporto per il completamento automatico dei moderni IDE, questo non è più un valido motivo (e non era nemmeno posteriore quando Java decise di vai per boolean ).

Non ho fatto parte del processo decisionale per Java, ma se qualcuno si occupa della storia, allora "algebra booleana" è la relativa precedenza storica, e si potrebbe anche mettere in dubbio la decisione di C / C ++ sul perché hanno mutilato il nome di Boole tagliando il e .

    
risposta data 21.03.2013 - 11:32
fonte
-2

Non riesco a risolvere il problema di coerenza, ma qui c'è una lunga storia.

Per quanto ricordo, Algol 60 è stata la prima lingua a riferirsi ai suoi tipi logici come "booleana". Algol 60 aveva anche tipi come "intero", "procedura", ecc.

Lungo arrivò Algol 68, e le abbreviazioni sembravano essere in voga: "bool", "int", "proc", ecc.

Quindi, i progettisti di linguaggi possono scegliere lo stile che preferiscono, e c'è un precedente per questo.

    
risposta data 28.03.2017 - 15:11
fonte

Leggi altre domande sui tag