Ayer conocíamos una triste noticia, Dennis Ritchie, padre del lenguaje de programación C y UNIX, había muerto el pasado sábado a la edad de 70 años. Como bien comentaba anoche mi compañero Alan en ALT1040, el legado de Dennis Ritchie es inmenso puesto que sobre Unix y C está construido gran parte de nuestro universo tecnológico así que, como no podía ser de otra forma, el capítulo de esta semana de Historia del Software se lo dedicamos a una figura fundamental en la historia de la tecnología.
Dennis MacAlistair Ritchie, o dmr, nació en Bronxville (Nueva York) el 9 de septiembre de 1941. Su padre, Alistair E. Ritchie, trabajaba como investigador en los Laboratorios Bell así que, desde pequeño, Dennis Ritchie creció en un ambiente técnico. Estudió en la Universidad de Hardvard y se diplomó en Ciencias Físicas y Matemática Aplicada y, en 1967, entró a formar parte del Centro de Investigación de Ciencias de la Computación de los Laboratorios Bell, obteniendo en 1968 el título de Doctor por la Universidad de Hardvard.
En los Laboratorios Bell formó parte de un proyecto de bastante envergadura, el Multics (Multiplexed Information and Computing Services), en cooperación con el MIT, General Electric y los Laboratorios Bell donde Ritchie trabajó con alguien muy especial, Ken Thompson. Multics era un proyecto demasiado ambicioso para Bell y requería de un hardware demasiado potente (un mainframe GE-645), así que tanto Ritchie como Thompson volvieron a Bell en 1969.
De vuelta a su centro de trabajo, Thompson siguió trabajando en desarrollos relacionados con la computadora GE-6354 del Multics y programó un juego de nombre Space Travel, sin embargo, dado que la computadora era muy cara, cada partida tenía un coste prorrateado de 75 dólares, algo que desestimaba cualquier explotación comercial. Thompson y Ritchie reescribieron el programa en ensamblador para poder ejecutarla en un PDP-7 y, tras su codificación, ambos se plantearon trabajar en un nuevo sistema operativo para el PDP-7.
Thompson y Ritchie lideraron un grupo de programadores de los Laboratorios Bell para desarrollar tanto el sistema de ficheros como el sistema operativo en sí (al que agregaron un intérprete de comandos y un pequeño grupo de programas). El proyecto, que no contó con respaldo ni financiación por parte de Bell, fue bautizado como UNICS (Uniplexed Information and Computing System) pero como el nombre daba pie a bromas relacionadas con MULTICS (porque consideraban UNICS un MULTICS "capado"), cambiaron el nombre a UNIX. Cuando el equipo decidió utilizar UNIX como sistema operativo de una PDP-11/20, y los responsables de Bell vieron el éxito del proyecto, los Laboratorios Bell apostaron por el proyecto y lo dotaron de financiación. Así nació, en 1970, el sistema operativo UNIX que incluía un editor de texto y un programa para dar formato a textos, de nombre runoff. El 3 de noviembre de 1971 Thomson y Ritchie publicaron un manual de programación de UNIX, UNIX Programmer's Manual.
Justo después de Unix, Dennis Ritchie abordaría otro de los proyectos que han marcado el mundo de la ingeniería y la computación: el lenguaje C. Este lenguaje de programación, que sigue siendo estudiado en muchas Universidades y titulaciones de índole técnico, fue un proyecto que tuvo como origen otro lenguaje de programación, B, desarrollado por Ken Thompson en 1970. Tras finalizar el proyecto de UNIX, Ritchie vio, que al estar escrito en ensamblador, este sistema operativo no era portable y, por tanto, no se podía llevar a una computadora distinta del PDP-11. Por tanto, se hacía necesario un lenguaje de programación que permitiese al programador abstraerse del hardware y ofrecerle una mayor portabilidad del código.
El lenguaje C aportó a B tipos y estructuras de datos que consiguiesen clarificar la programación y obtener un lenguaje mucho más eficiente. Ritchie diseñó, desde 1970 a 1972 junto a Brian Kernighan, un lenguaje que permitía realizar una programación estructurada en la que se podían economizar las expresiones a usar y con el que los desarrolladores podrían contar con un buen conjunto de operadores y tipos de datos para programar tanto en alto como en bajo nivel de manera simultánea.
En 1972, el equipo de Bell decidió reescribir UNIX de nuevo pero, esta vez, en lenguaje C. Gracias a esta decisión, UNIX podría adaptarse fácilmente para funcionar en otras computadoras y abría la puerta a que otros desarrolladores pudiesen introducir cambios y aportaciones al código. En 1973, C era tan potente que la mayor parte del núcleo de Unix estaba ya escrito en este lenguaje. Gracias a C, la velocidad de desarrollo aumentó y dado que Bell no se dedicaba a la venta de computadoras, comenzó a distribuir versiones de Unix y del compilador de C a las universidades. Así, fue como, en los años 70, comenzó a surgir el movimiento a favor de los sistemas abiertos.
Por todas estas contribuciones, Dennis Ritchie fue galardonado con múltiples premios y menciones por su trabajo:
En 1979, Dennis Ritchie y Ken Thompson recibieron el Premio NEC C&C por su contribución en el campo de los sistema operativos genéricos y el desarrollo del sistema operativo UNIX En 1983, Dennis Ritchie y Ken Thompson recibieron en conjunto el Premio Turing por su desarrollo de la teoría genérica de sistemas operativos y específicamente por la implementación del sistema operativo UNIX * En 1988, Dennis Ritchie fue elegido miembro de la National Academy of Engineering por la implementación de UNIX y el desarrollo del lenguaje C. El 21 de abril de 1999, de manos del Presidente Bill Clinton, Thompson y Ritchie recibieron la Medalla Nacional de Tecnología por el desarrollo de UNIX, el lenguaje C y por su impacto en el desarrollo de una industria que realzó el liderazgo de Estados Unidos en la era de la información En este año 2011, Dennis Ritchie y Ken Thompson fueron galardonados con el Premio Japón en el ámbito de la Información y las Comunicaciones por su trabajo pionero en el desarrollo de UNIX.
Dennis Ritchie se jubiló de los Laboratorios Bell (que ahora forman parte de Alcatel-Lucent) en el año 2007 como jefe del departamento de Investigación en software de sistemas de Alcatel-Lucent, dejando tras de sí una intensa carrera en la que contribuyó enormemente a crear el ecosistema tecnológico que disfrutamos a día de hoy.
El sábado 8 de octubre, tras sufrir una larga enfermedad y rodeado de los suyos, Dennis Ritchie moría en su casa, sin embargo, la noticia no trascendió hasta ayer jueves cuando su amigo y antiguo compañero, Robert Pike, anunció su muerte a través de su perfil en Google+:
Acabo de enterarme, después de una larga enfermedad, Dennis Ritchie (dmr) ha muerto en su casa este fin de semana. No tengo más información. Confío en que hay gente aquí que apreciarán el alcance de sus contribuciones y llorarán su muerte apropiadamente. Era un hombre tranquilo y celoso de su intimidad, pero también era mi amigo, colega y colaborador, y el mundo ha perdido una mente verdaderamente grande
El primer lenguaje de programación que aprendí fue el Lenguaje C y, la primera clase de esa asignatura, nos hablaron de Dennis Ritchie y la historia de C y UNIX.
El mundo ha perdido una mente brillante que nos deja un gran legado. Descansa en paz dmr.