En el mundo de la computación, siempre son reconocidos los nombres de los grandes empresarios, de aquellos que han logrado llevar a las computadoras a los modelos de negocios más rentables, generando grandes emporios comerciales que han llenado los bolsillos de unos cuantos afortunados con millones de dólares, pero curiosamente, casi no se habla de quienes proveyeron la materia prima para el éxito de esa industria, como es el caso de Dennis Ritchie.
Vivimos en un mundo lleno de maravillas tecnológicas, las cuales funcionan gracias a una innumerable cantidad de datos de software, desde sistemas operativos, inteligencias artificiales, aplicaciones, programas, bases de datos, texto, imágenes, vídeos, sonidos, todo eso acumulado en unidades de almacenamiento distribuidas a lo largo y ancho de todo el planeta (o fuera de él incluso), pero nuestro mundo es como lo conocemos gracias a un lenguaje de programación conocido por el nombre de C.
Dennis MacAlistair Ritchie, o simplemente, Dennis Ritchie, así como una de sus dos creaciones más notables, el Lenguaje C, han pasado a la historia solamente para ser conocidos por unos cuantos, principalmente aquellos que vivimos por y para la computación, montados de forma discreta entre las páginas de la tecnología, como si del kernel de un sistema operativo se tratara, sin ser conocido realmente, pero disfrutado y utilizado por todo el mundo.
Dennis Ritchie, el discreto y modesto genio del software
Nacido en la villa de Bronxville, Nueva York, el 9 de septiembre de 1941, estudió en la ciudad de Nueva Jersey, para posteriormente obtener los grados de maestría en Física y Matemáticas aplicadas en la Universidad de Harvard, sin embargo, Ritchie era un genio que pecaba de modestia, motivo por el que no se consideraba “lo suficientemente inteligente como para ser físico”, afortunadamente para las ciencias computacionales, ya que gracias a su humildad, dedicó su vida a los temas informáticos, con los que logró el avance de la humanidad.
Ritchie comenzó a trabajar en los Laboratorios Bell, pertenecientes a la empresa AT & T en la década de los 60’s. Ahí conoció a un nuevo compañero de aventuras, Kenneth Lane Thompson (o simplemente Ken Thompson), con quien trabajó en el sistema operativo Multics, sin embargo, la necesidad los llevó a tener que realizar investigaciones en una máquina casi obsoleta para su época, una PDP-7, la cual tuvieron que adaptar para que funcionara con un nuevo sistema operativo, basándose en Multics, terminaron creando el conocido como UNIX.
Thompson en ese proyecto elaboró un nuevo lenguaje de programación, esto con la finalidad de llevar la comunicación con la máquina a nivel de sistema, ya que tanto Unix como Multics trabajaban desde el lenguaje ensamblador, para lo que se generó el lenguaje B, predecesor del lenguaje C.
Entre inspiración, necesidad y vídeo juegos, el nacimiento de C
Ciertamente no hay una versión exacta de cómo surgió C. Lo que sí se sabe es que estuvo involucrada la vieja PDP-7.
Existe una leyenda en la que se refiere que Thompson y Ritchie deseaban jugar Space Travel, un juego desarrollado por el mismo Ken en 1969, sin embargo, dado que el juego se había desarrollado en lenguaje ensamblador para el sistema operativo de un mainframe multiusuario, el poder del mainframe no era suficiente, así que lo portaron a un PDP-11, pero ya que todo estaba en lenguaje ensamblador, el poder portar el juego era sumamente costoso, la mejor opción, crear un nuevo lenguaje de programación que fuera de alto nivel y portátil, pero el lenguaje B no poseía todas las funciones para utilizarlo en el PDP-11, así que comenzó el proceso de crear a C.
La historia anterior no se encuentra avalada en ningún lado de la bitácora de Ritchie para laboratorios Bell, lo que sí menciona es que Bell, junto con el MIT (Instituto Tecnológico de Massachusetts) y General Electric, habían comenzado a abandonar Multics, esto derivado del tiempo y costos económicos que suponía.
Ante la prematura retirada de Multics, hubo un grupo dirigido por Ken Thompson que decidió explorar alternativas. Dentro de esas alternativas surgió Unix, pero a su vez, surgió la necesidad de un lenguaje de programación que permitiera crear software ejecutable y con ello, salir del lenguaje ensamblador, el cual era pesado, difícil de aprender y escribir, costoso en tiempos de programación y que estaba directamente relacionado con Multics.
Doug Mcllroy desarrolló entonces, en 1969, el primer lenguaje superior para el recientemente creado Unix, TMG, el cual era un lenguaje para escribir compiladores, con el que McIlroy y Bob Morris habían escrito el primer compilador PL/I para Multics.
Otro lenguaje involucrado era BCPL, un lenguaje pensado para funcionar bajo diferentes arquitecturas de computadoras, diseñado en 1966 por Martin Richards en la Universidad de Cambridge, el cual conocieron Thompson y Ritchie porque fue utilizado para el desarrollo de Multics.
Finalmente, Thompson decidió que el recién nacido Unix requería un lenguaje propio, por lo cual se dio a la tarea de desarrollar el Lenguaje B, el cual no se sabe exactamente el origen de su nombre, aunque Ritchie especuló que podía ser debido a que se basaba en BCPL, aunque comprimido para existir en 8 mil bytes de memoria. Otra hipótesis es que se originó en el nombre de Bon, un lenguaje utilizado en Multics, nombrado así en honor a la esposa de Thompson, Bonnie.
A pesar de todas las ventajas que suponía el lenguaje B para desarrollar el software de Unix, pero, especialmente, ajustarlo a las capacidades de la PDP-11, el lenguaje B aún era un tanto arcaico para poder exprimir a fondo las mejoras que se iban añadiendo a los equipos.
Ante todo lo anterior (y muchos problemas técnicos que se fueron detectando), Ritchie comenzó a añadir más elementos y a depurar el lenguaje B, de tal forma que fuera adaptable a las nuevas características de hardware que pudieran ir surgiendo, además de que reescribió el compilador, el cual permitiría generar instrucciones a nivel de máquina y no solamente códigos subprocesados, permitiendo así que los programas fueran más pequeños y veloces, estando a la par de los que eran generados en lenguaje ensamblador. A este nuevo lenguaje originalmente se le nombró lenguaje NB, es decir “nuevo B”.
Ritchie siguió, a lo largo de un par de años, depurando el “nuevo B”, añadiendo y corriendo funciones, sintaxis y compiladores, sin embargo, al finalizar estos años, el nuevo lenguaje ya le quedaba pequeño el nombre de “nuevo B”, por lo que Dennis decidió nombrarle “C”, en una clara broma informática, para dejar la interrogante de si se trataba de la progresión alfabética de B a C, o si representaba el avance de B a C en el nombre del lenguaje BCPL.
Así, para 1973, había nacido el lenguaje C, mismo que fue utilizado para reescribir todo el código de Unix, lo cual marcaría el fin del uso del lenguaje ensamblador en la creación y desarrollo de nuevos sistemas operativos.
Ritchie, el legado de una obra silenciosa
A pesar de que no existe en la actualidad software que no sea un derivado de la creación y trabajo de Dennis Ritchie, su vida permaneció sin gran cantidad de reflectores, estando dedicado a su trabajo, a crear manuales como “El lenguaje de programación C” o “Unix Programmer’s Manual”.
Dentro de los reconocimientos que se le otorgaron en vida se encuentra el Premio Turing, otorgado en 1983, en la cual dio la conferencia titulada como “reflexiones en Investigación de Software”, misma que es posible encontrar íntegra y de manera gratuita en Internet Archive.
Dennis Ritchie apagó finalmente su vida el día 12 de octubre del 2011, hace ya 11 años, dejando a su paso por este mundo los cimientos de las tecnologías que actualmente hacen funcionar nuestro mundo, tales como los sistemas operativos Unix, Windows, Mac OS, iOS, Linux o Android, así como la existencia de otros lenguajes de programación como C#, Objetive C o Java, junto con todos sus derivados, y por ende, todos los programas y aplicaciones que existen en la actualidad.