Aunque la muerte de este genio a mediados de Octubre pasó casi inadvertida, por no ser un personaje demasiado conocido y por coincidir con el fallecimiento de otro personaje mucho más mediático como lo fuera Steve Jobs, he pensado en hacer un pequeño homenaje al que fue, junto a Ken Thompson, padre de Unix.
Dennis MacAlistair Ritchie nació en 1941 en Bronxville (NY, Estados Unidos), y se graduaró en Harvard con una licenciatura en matemáticas y un doctorado en física, lo que le permitió entrar a formar parte de Bell Labs de la compañía telefónica AT&T en 1968.
Sus aportaciones a la informática tienen su punto de partida en 1969. Año en el que Ken Thompson y Ritchie habían participaron en el desarrollo de Multics (Multiplexed Information and Computing System), un sistema operativo muy avanzado para la época desarrollado para ejecutarse en una computadora central (mainframe) modelo GE-645.
El objetivo del proyecto era desarrollar un gran sistema operativo interactivo que contase con muchas innovaciones, entre las que destacaban las mejoras en las políticas de seguridad. A pesar de que pusieron muchas esperanzas en el proyecto, Multics fracasó por ser demasiado complejo y los laboratorios Bell decidieron acabar con el proyecto.
Thompson decidió rehacer el trabajo a mucha menor escala y llamó al proyecto Unics (Uniplexed Information and Computing System), como burlándose del que había abandonado, pero dada la popularidad que tuvo un juego de palabras que consideraba a UNICS un sistema MULTICS castrado (pues eunuchs, en inglés, es un homófono de UNICS), se cambió el nombre por el de UNIX.
La idea principal para ese nuevo proyecto fue que debía mantenerlo simple y no caer en los errores que habían lastrado a su predecesor, dando origen a la filosofía Unix:
- Que cada programa realice únicamente la tarea para la que fue creado y la haga bien.
- Para llevar a cabo una nueva tarea escribe un programa nuevo. No compliques uno viejo añadiendo nueva funcionalidad.
- Escribe tu programa teniendo en cuenta que su salida probablemente sea la entrada de otro programa.
- Guarda los datos en archivos de texto plano. Si necesitas seguridad, confía en los permisos.
- Usa nombres cortos y en minúscula.
- En la manera de lo posible haz que el usuario suministre los datos por línea de comandos en la llamada.
- Haz partes simples conectadas mediante interfaces limpias y bien definidas.
- Céntrate en los datos.
- Claridad mejor que complejidad. La solución más simple es frecuentemente la mejor.
- Portabilidad mejor que eficiencia.
- Piensa en paralelo. Hay otros procesos en el mundo, incluso instancias de tu mismo programa funcionando al mismo tiempo.
- Hacer programas grandes, solo cuando se demuestre que no se puede realizar con uno pequeño.
- Si no hay nada interesante que decir, que el programa mejor no diga nada.
- Para cada problema existen múltiples soluciones.
- Diseña pensando en el futuro (esta cercano). Esto nos ofrece compatibilidad y mayor tiempo de utilización.
- Programa de abajo hacia arriba y de conocimiento pragmático.
- Programa basándote en el conocimiento Empírico o Experiencia.
Hasta ese instante, no habían tenido ningún tipo de apoyo económico por parte de los laboratorios Bell, pero eso cambió cuando el Grupo de Investigación en Ciencias de la Computación decidió utilizar el recién creado UNIX en una máquina superior a la PDP-7. Thompson y Ritchie lograron cumplir con la solicitud de agregar herramientas que permitieran el procesamiento de textos a UNIX en una máquina PDP-11/20, y como consecuencia de ello consiguieron el apoyo económico de los laboratorios Bell. Fue así como por vez primera, en 1970, se habló oficialmente del sistema operativo UNIX.
Dos años después de aquello, Ritchie desarrolló el lenguaje de programación que pasaría a ser el estándar de facto durante muchos años, base de muchos de los lenguajes de programación actuales y que aún a día de hoy es el segundo lenguaje informático más popular, el lenguaje C
Lenguaje que surgió como evolución del anterior lenguaje B, que desarrolló el mismo informático que era su compañero en la creación de Unix, Ken thompson.
C es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix. Es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.
La primera estandarización del lenguaje C fue en ANSI, con el estándar X3.159-1989. El lenguaje que define este estándar fue conocido vulgarmente como ANSI C.
La creación de este lenguaje permitió que Unix fuera reescrito totalmente, pues hasta ese momento, tanto el sistema operativo como los programas estaban escritos en el lenguaje ensamblador de la PDP-11/20.
Esto supuso un cambio clave en la historia de la informática. Unix pudo ser adaptado a cualquier máquina con compilador de C, y muy pronto la mayoría lo tuvo. El software que antes había que reprogramar cuando el ordenador en que funcionaba quedaba obsoleto pudo funcionar en muchas máquinas distintas y sobrevivir al cambio de computadoras. Ahora, el código era más conciso y compacto, lo que se tradujo en un aumento en la velocidad de desarrollo de UNIX y hackers de todo el mundo lo adoptaron rápidamente, llegando a ser el sistema más popular en universidades y empresas. Una empresa llamada Sun, fundada en los 80, se encargaría de llevarlo a las empresas y hacerlo omnipresente.
AT&T puso UNIX a disposición de universidades, compañías y del gobierno de los Estados Unidos, a través de licencias. Una de estas licencias fue otorgada al Departamento de Computación de la Universidad de California, con sede en Berkeley. En 1975 esta institución desarrolló y publicó su propio UNIX-like, conocida como BSD (Berkeley Software Distribution).
Ese no fue el único sucesor de Unix ni mucho menos, ya que en 1983, un ingeniero del MIT llamado Richard Stallman se embarcó en la complicada tarea de que todos pudieran pudieran tener acceso a un sistema operativo como Unix y usarlo sin restricciones. Así nació el Proyecto GNU (GNU is Not Unix) con el objetivo de crear un sistema operativo completamente libre.
En 1991, un estudiante de Helsinki llamado Linus Torvalds empezó a escribir el núcleo Linux y decidió distribuirlo bajo la licencia GNU GPL (GNU General public License). Rápidamente, múltiples programadores se unieron a Linus en el desarrollo colaborando a través de Internet. En 1992, el núcleo Linux fue combinado con el sistema GNU, completando lo que pretendía este proyecto y dando como resultado un sistema operativo libre y completamente funcional.
Más adelante, a finales de los 90, la compra de Next por parte de Apple y el código de BSD darían origen a otro Unix-like conocido como Mac OS X
Y para no enrollarme más con lo que supuso la creación de Unix y a todos los sistemas que surgieron de él.
Como no podía ser de otra manera, durante su carrera, Dennis Ritchie acumuló numerosos premios por su trabajo, especialmente por lo que supuso Unix en el mundo de la informática, como pueden ser:
- El premio Premio NEC C&C. 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.
- El Premio Turing. En 1983. 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. La conferencia de Ritchie en el Premio Turing fue titulada "reflexiones en Investigación de Software"
- Medalla IEEE Richard W. Hamming. En 1990, tanto Ritchie como Ken Thompson recibieron la Medalla IEEE Richard W. Hamming del Institute of Electrical and Electronics Engineers (IEEE), "por la creación del sistema operativo UNIX y del lenguaje de programación C".
- Medalla Nacional de Tecnología. El 21 de abril de 1999, Thompson y Ritchie recibieron en conjunto la Medalla Nacional de Tecnología de 1998 del presidente Bill Clinton por co-inventar el sistema operativo UNIX y el lenguaje de programación C, que juntos han llevado a enormes avances en hardware de computadoras, software, y sistemas de red, y estimularon el crecimiento de una industria entera, por lo tanto realzando el liderazgo norteamericano en la era de la información.
- Premio de Japón. En 2011, Dennis Ritchie, junto con Ken Thompson, fue galardonado con el Premio Japón para Información y Comunicaciones por el trabajo pionero en el desarrollo del sistema operativo UNIX.
- Fue también autor, junto a Brian Kernighan, del que probablemente es el libro de programación más famoso de la historia, “The C Programming Language“
Falleció a los 70 años tras una larga enfermedad y sin hacer apenas ruido, pero su legado es inestimable. Un hombre que si bien no supuso más que una pequeña reseña en los periódicos del día 12 de Octubre de 2011, marcó un antes y un después en la informática.
Ley del software : Si aprendes a usarlo, sale la siguiente version.
No hay comentarios:
Publicar un comentario