viernes, noviembre 04, 2011

Dennis Ritchie, el señor de las computadoras (y sus lenguajes)

Dennis Ritchie (9 de septiembre 1941 - 12 octubre 2011) fue un investigador y científico computacional cuya influencia en el mundo de la computación se considera mayúscula.

Dennis Ritchie en 1999
En 1967 entró a trabajar en los laboratorios Bell donde formó parte de los equipos de trabajo que desarrollaron el SO MULTICS (antecedente de UNIX) y los lenguajes de programación BCPL, ALTRAN y B (antecedente directo de C). En 1969 formó un equipo de trabajo lidereado por Ken Thompson y apoyado por Douglas McIlroy, Rudd Canaday, Joe Ossanna y él mismo para diseñar un SO derivado de MULTICS (Multiplexed Information and Computing System), más general y flexible. Como el objetivo de MULTICS era hacer muchas tareas al mismo tiempo, el nuevo sistema operativo se concentaría en hacer una tarea, y hacerla bien, también se diseñó como un sistema multiusuario y de tiempo compartido; como juego de palabras,se le empezó a llamar UNICS, como UNICS es un homófono en inglés de eunuchs (eunucos) se rebautizó como UNIX.

Ken Thompson y Dennis Ritchie, parte del equipo de trabajo original que diseñó al sistema operativo UNIX.


A partir de 1969 Dennis Ritchie empieza a diseñar un nuevo lenguaje de programación al que llamó C basado en el lenguaje interpretado B y más estructurado que su primer intento BCPL. Hacia 1972 el diseño ya estaba lo suficientemente perfeccionado para que el propio Ritchie escribiera un compilador y se pudiera reescribir todo el kernel de UNIX (escrito originalmente en ensamblador para la PDP-11).
Precisamente en 1972 el sistema operativo UNIX se  empezó a instalar en centros de cómputo de investigación y desarrollo empresarial (departamentos I+D). En estos años, apenas se contabilizaban 10 instalaciones de UNIX, pero se esperaba que este número aumentara. Después se introdujo a distintas universidades donde fue pulido y aumentado, con el tiempo se le agregaron estándares de red, seguridad, flexibilidad, se agregaron programas y herramientas libres hasta llegar al poderoso, flexible y omnipresente sistema UNIX de hoy en día. Los conceptos, filosofía y estándares de UNIX han servido de base para la creación y desarrollo del sistema operativo Linux, los sistemas UNIX y su código también forman los cimientos de los SOs Mac OS X y Android.

Las mascotas de los sistemas operativos basados en UNIX. De izquierda a derecha: Darwin, el núcleo unix sobre el que está contruido Mac OS X, BSD Unix y FreeBSD (los diablitos), OpenBSD (el pez globo), NetBSD (el diablo con sarape) y Linux, el pingüinito metamórfico.

El lenguaje C. Esta fue la principal aportación de Dennis Ritchie; aunque se desarrolló entre 1969 y 1973, aunque en 1972 tuvo su prueba principal al codificar todo el kernel de UNIX. Como es una de las herramientas que son parte de UNIX, se ha usado muy ampliamente para la programación y codificación de sistemas y aplicaciones. Su diseño está pensado para la programación de sistemas, para manipular de forma casi directa a la máquina, dejando casi toda la responsabilidad de chequeo de errores al usuario (esa es la base de su brevedad pero también el punto principal de su crítica).

Portada del libro de presentación del lenguaje. También la estructura, filosofía y conceptos del libro han tenido gran influencia en el mundo de la industria editorial informática.

El lenguaje C ha sido uno de los más influyentes del mundo, constituyendo la base para la sintaxis, estructura y hasta para los conceptos de muchos otros lenguajes (sobre todo teniendo en cuenta que lleva activo casi 40 años en el mundo de la computación): AWK, csh, Objective-C, C++, C--, C#, Java, JavaScript, Perl, PHP, etc.

Esquema con la evolución de los lenguajes de programación (incompleta, claro).
Un último punto: el mundo de la computación se vio golpeado en un breve periodo por tres muertes de personajes destacados: Steve Jobs (5 octubre 2011), Dennis Ritchie (12 octubre 2011) y John McCarthy (diseñador del lenguaje Lisp, 24 octubre 2011), siendo el primero el suceso más sonado y conmemorado, pero su influencia se dio en el mundo de los negocios y la administración, Ritchie y McCarthy fueron científicos computacionales e investigadores informáticos, su influencia y aportaciones de dieron en esferas sociales distintas (aunque interrelacionadas, pero ese es otro tema). El hecho de que tanto Ritchie y McCarthy hayan recibido el premio ACM Turing y Jobs haya cenado con el presidente Obama y haya tenido tantas menciones en los medios es ejemplo suficiente para saber que unos eran académcos destacados y el otro administrador y hombre de negocios influyente. Compararlos no tiene sentido.


3737.18