Il linguaggio B viene sviluppato da Ken Thompson presso i Bell Labs intorno al 1969. Di questo linguaggio oggi resta solo nel ricordo di pochi pionieri e di alcune pagine web che lo rappresentano come uno strumento di transizione tra il BCPL (Basic Combined Programming Language) e il linguaggio C.
La scelta della lettera B, per contraddistinguere il linguaggio può avere diverse origini: Thompson lo attribuisce ufficialmente alla prima lettera di BCPL, ma potrebbe anche essere riferito all’iniziale del nome della moglie Bonnie a cui già in precedenza aveva dedicato il nome del linguaggio “Bon”, realizzato per il sistema operativo Multics.
B è molto simile a BCPL, ma Thompson lo priva di tutti i componenti ritenuti superflui rispetto ai minicomputer del tempo, caratterizzati da una memoria molto limitata. Inoltre, Thompson apporta una serie di modifiche che, nel suo intento, possono migliorarne l’utilizzo: si pensi alla riduzione del numero di caratteri “non-whitespace” nella sintassi di programmazione. Resta comunque al limitazione dalla disponibilità di solo un tipo di dato (ereditata sempre dal BCPL): il tipo word. Da un punto di vista degli operatori, quelli aritmetici di base (+, -, *, /) trattano la word come un intero, mentre in altri casi viene vista come un indirizzo di memoria da dereferenziare.
Nella struttura, B può essere paragonato ad una versione preliminare del linguaggio C, vista la presenza di alcune librerie di funzioni, compreso una pseudo libreria standard di I/O del linguaggio C.
Come per UNIX, il linguaggio viene realizzato inizialmente su un DEC PDP-7, oltre che su un Honeywell a 36 bit dotato del sistema GCOS. Inoltre il sorgente B viene compilato in “threaded code” e, solo successivamente, Ritchie, e non Thompson, crea un compilatore apposito. Con l’arrivo del PDP-11 (1971), Ritchie comincia a fare cambiamenti al linguaggio per abbracciare il supporto ai “tipi di dati” del nuovo calcolatore, dando vita al New B (1971-1972), conosciuto con la sigla NB, che nel giro di un anno si arricchisce del pre-processore grazie al contributo di Alan Snyder.
Il linguaggio B, nelle sue varie incarnazioni, verrà utilizzano fino a fine degli anni 90 sui mainframe Honeywell e su alcuni sistemi embedded per abbracciarne le specifiche limitazioni hardware. Da sottolineare come Alan Cox, figura fondamentale nello sviluppo del Kernel Linux, utilizza proprio il linguaggio B per scrivere AberMUD, il primo popolare gioco di ruolo MUD (acronimo di Multi User Dungeon/Dimension/Domain).