Por qué se llama C al lenguaje de programación: ¿Existió antes un lenguaje B? ¿Qué pasó con el lenguaje D?

La historia del lenguaje de programación de Bjarne Stroustrup es más curiosa de lo que crees. Antes de C, existía un B y después un D, versiones que quedaron en el olvido.
Hoy en día es uno de los lenguajes de programación más demandados en la industria informática, pero, al igual que muchos, el proceso de creación tuvo que pasar por diferentes cambios para poder posicionarse de esta manera.
Aunque Python, JavaScript o Rust también son importantes en la actualidad, gran parte de la infraestructura tecnológica sigue dependiendo directa o indirectamente de C.
Lo curioso es que su nombre es peculiar porque no se parece a ningún otro y esto a veces genera dudas a aquellos que están estudiando desde cero sus funcionalidades.
Una de las preguntas que más suelen surgir es si existió realmente un lenguaje B antes que C. ¿Hubo una versión A? ¿Qué ocurrió con la letra D? Cuando empiezas a ver su historia desde esta perspectiva, entiendes que ese pequeño proyecto dentro de Bell Labs ha sido más complejo y extenso de lo que se piensa.
De BCPL a B: el origen de la letra C

¿Por qué C se llama así? Para poder entender esto hay que remontarse a la década de 1960, una época en donde la empresa Bell Labs se consideraba como uno de los centros de investigación más importantes de todo el planeta.
Allí trabajaban figuras como Ken Thompson y Dennis Ritchie. Los mencionados expertos constantemente trabajaban en el desarrollo de sistemas operativos o herramientas de programación, logrando avances importantes para toda la industria tecnológica.
Según el histórico artículo de Dennis Ritchie sobre la evolución del lenguaje, C nació entre 1969 y 1973 en paralelo al desarrollo temprano de Unix. Su antecedente directo fue B, y este a su vez provenía de BCPL.
BCPL (Basic Combined Programming Language), fue diseñado por Martin Richards en 1966 como una simplificación de CPL (Combined Programming Language). Este era categorizado como un lenguaje sencillo y sin tipos, pues la idea de su composición era que fuera más fácil el proceso de generar compiladores y software.
En un punto, Thompson requería de una herramienta que fuera más práctica para trabajar en Unix, pero no había ninguna que cumpliera con las exigencias del momento. Por esto mismo es que utilizó los principios del BCPL para finalmente crear B.
Esto no representaba una secuencia alfabética iniciada previamente por un lenguaje A, ya que era la simplificación derivada de BCPL, dejando a C como un sucesor directo tras el primer nombre.
Cómo B evolucionó hasta convertirse en C

Para los primeros sistemas Unix, B era un aspecto fundamental, pero todavía tenía limitaciones al no tener tipos y, además, las computadoras comenzaban a evolucionar.
Esto llevó a que se necesitaran mejoras grandes para que se pudieran aprovechar los recursos de hardware y expandir las capacidades.
De esta manera, los tipos de datos fueron incorporados para que la memoria fuera más eficiente y vieron un control más preciso en la información que se almacenaba. Así, C evolucionó desde el lenguaje sin tipos BCPL y por eso esas novedades se convirtieron en las características cruciales.
Un dato interesante es que no siempre fue tan popular y al comienzo fue conocido solo como "Nueva B" debido a que se consideraba como una actualización. Cuando de verdad se marcaron diferencias, tuvieron que nombrarlo y la decisión se nota que fue sencilla: seguir a la siguiente letra del alfabeto.
En 1973, Unix fue reescrito en gran medida en C, un acontecimiento histórico porque demostró que un sistema operativo podía construirse con un lenguaje de alto nivel sin sacrificar rendimiento.
¿Hubo una A antes de B y C?

Tal y como se ha contado, la decisión del alfabeto no fue tomada como el primer paso durante el desarrollo de estos lenguajes. Es algo que se fue dando a medida que llegaron las evoluciones de los sistemas y el hardware.
No existió un lenguaje de programación llamado "A" dentro de una secuencia oficial. Si se busca un verdadero ancestro en esta línea evolutiva, el candidato más sólido es ALGOL (Algorithmic Language), surgido a finales de los años 50.
Aunque su nombre no fue elegido por la primera letra del abecedario, funcionó como la base conceptual de la que nacieron CPL, BCPL y, posteriormente, los lenguajes B y C.
¿Qué pasó con el lenguaje D?

A pesar de que no existió oficialmente una "A", la "D" si sucedió cuando Bjarne Stroustrup buscó expandir las capacidades de C añadiendo programación orientada a objetos durante los años 70.
Todos esperaban que esta nueva evolución fuera llamada con la siguiente letra del abecedario, pero en 1983, el desarrollador lo nombró como C++, que es el que actualmente se conoce en muchos infraestructuras que dependen de él.
Por lo visto, este título fue un ingenioso guiño al operador de incremento (++), mientras que era una buena opción para demostrar los avances de C.
Pero la historia no termina ahí, pues en 2001 Walter Bright sí creó el lenguaje D con el objetivo de corregir las limitaciones de C++ manteniendo su eficiencia de bajo nivel.
Por un tiempo tuvo una comunidad sólida, pero nunca llegó a consolidarse tan popular como lo hizo C++. Este es sin duda uno de los detalles informáticos poco conocidos que merecen estar en un museo de programación.