Hace tiempo atrás hablamos sobre Ada Lovelace, siguiendo esa misma línea de personajes que aportaron muchísimo a las ciencias de la computación, en esta ocasión hablaremos sobre Dennis Ritchie, un físico y matemático de Harvard, cuyo rol principal fue el de científico de computación.
Nació en Bronxvillle, Estados Unidos el 9 de setiembre de 1941 y desde su juventud mostró especial interés en la computación por aquel entonces incipiente aún. Ya pasados los años, y tras finalizar sus estudios en Harvard, obtuvo dos grados: de física y matemática aplicada, luego estudió un phD aunque no llegó a concluirlo.
Su padre fue Alistair E. Ritchie un programador de Bell Labs. un brillante científico que ya en los años 50 escribió junto a sus compañeros del staff técnico de Bell el libro The design of switching circuits muy probablemente fue quien más contribuyó a que su hijo se decantara por la computación. Sin duda Alistair, el padre de Ritchie fue un genio también, mira que para escribir de estos temas por los años 50, hay que tenerla muy clara eh 😮
Las anécdotas en los laboratorios Bell
Corría el año de 1967 y fue cuando Ritchie entró a trabajar en los míticos Laboratorios Bell, digo míticos porque grandes avances a la tecnología se gestaron desde allí, pero ese será motivo para otro post. Al poco tiempo de entrar le asignaron trabajar junto a Ken Thompson en el sistema operativo MULTICS de los laboratorios Bell.
Pero este sistema les resultaba muy complicado para programar en él y más de un quebradero de cabeza les trajo.
Con el pasar de los días, Thompson, su compañero de trabajo y a la vez un brillante científico, encontró una vieja máquina, me refiero a la PDP-7 y junto con Dennis Ritchie, Rudd Canaday y otros compañeros más, comenzaron a construir un sistema operativo desde cero, debido a que MULTICS presentaba una altísima complejidad y además como ya he mencionado era muy pesado.
Pero esto no era cuestion de MULTICS solamente, sino de todos los demás sistemas operativos de aquel tiempo, por poner un ejemplo el sistema OS/360 desarrollado por IBM el cual según Fred Brooks tenía errores en el control de programas, requería más memoria que la planificada y era lento.
Hagamos un ejercicio mental, si sumamos todas las horas de labor de todos los miembros del equipo que construyó el sistema OS/360 de IBM tendríamos como resultado: 5000 años 😮 y esto fue mencionado por Frederick Brooks en su libro The mythical man-month. ¡Wow! Toda una locura, tal es así que el director ejecutivo de laboratorios Bell Victor Vyssotsky creía que esta forma de trabajar debía cambiar, ya que es insostenible hacer este tipo de esfuerzo cada vez que se quiera crear un software.
Coincido con Víctor cuando dice:
En el libro: "The mythical man-month" Fred Brooks estima que tomó 5000 años de esfuerzo al grupo de trabajo que construyó el sistema para las computadoras IBM OS/360, ciertamente nadie va a hacer tal esfuerzo de forma frecuente, especialmente para un nuevo tipo de hardware o un nuevo tipo de aplicación.
Ojo que este cálculo es fidedigno ya que Fred Brooks, el autor del libro, fue nada más y nada menos que director de proyecto de OS/360 👀
Aquí es donde el sistema recién creado para aquel entonces, inicialmente llamado UNICS, como acrónimo Uniplexed Information and Computing System, aportó muchísimo a la computación y las ciencias en general, porque antes de él, para hacer un pequeño cambio de funcionalidad en un software le tomaba modificar miles de líneas de código, en cambio con UNICS lo haría con unas cuantas líneas solamente.
Para tal época eso significó un cambio de paradigma y un impulso brutal, que animó a hacer del desarrollo de software algo no sólo más rápido, sino eficiente y amigable, a la par que conservaba el bajo nivel requerido para interactuar con el hardware.
Fue Brian Kernighan, un compañero del equipo técnico de Bell, que propuso cambiar el nombre de UNICS a UNIX, para distanciarse de UNICS, MULTICS y la palabra inglesa eunuch que significa "castrado" motivo por el cual algunos compañeros les gastaban bromas 😁
Para estar a la altura del nuevo sistema UNIX, entre 1969 y 1973 Dennis tuvo la brillante idea y capacidad, de diseñar y crear un nuevo lenguaje de programación y lo llamó C, ya que iba a reemplazar al lenguaje que previamente Ken Thompson había creado y el cual se llamaba B. A mi parecer, esta fue su creación cúspide, ya que fue con C donde todo comenzó, no será el primer lenguaje de programación creado pero sí el que más influencia y repercusión tiene hasta nuestros días.
La filosofía de C es simple pero poderosa a la vez: el objetivo de C es que solo sean necesarias unas pocas instrucciones en lenguaje máquina para traducir cada elemento del lenguaje.
Fue por 1973 cuando por la versión 4 de UNIX este fue reescrito en C ya que inicialmente fue escrito en lenguaje ensamblador, años después, en 1978, Brian Kernighan colaboró con Dennis en documentar el nuevo lenguaje, ya que hizo el primer tutorial de C y luego publicaron la primera edición de The C Programming Language.
Legado y final
Se sabe que los siguientes lenguajes de programación tienen sus bases en C: Java, C++, C# (inspirado en C), Objective C, Swift, Phython, Ruby y PHP.
De forma similar UNIX fue pieza fundamental o influyó en la creación de otros sistemas operativos como BSD y sus variantes, NextStep, macOS, Solaris, Linux, y los sistemas operativos móviles Android e iOS.
Con el pasar de los años el viejo Bell Labs. el cual ya se llamaba AT&T transfirió a Ritchie a Lucent Technologies donde tuvo el rol de jefe del Departamento de Investigación de Software hasta que se jubiló en 2007.
En el año 2011 después de un tiempo con resquebrajada salud murió, pero anecdóticamente muchos no se enteraron ya que una semana antes Steve Jobs también había fallecido y fue quien se llevó las portadas de todos los medios mundiales, que aunque también fue una persona prominente en el mundo tecnológico, considero que en general tuvo un impacto y aporte mucho menor, sin desmerecer sus grandes aportes también, más en el área de negocios, democratización de la tecnología e innovación de producto que en el campo técnico donde Dennis es el capo de capos, y no dejó una empresa multi-millonaria como Jobs, pero sí todo el cimiento donde se construyó esta y otras grandes corporaciones.
A lo largo de su vida Dennis, ha ganado varios premios, pero considero que su influencia fue tan grande que los premios obtenidos juntos no terminan de reflejar su vital aporte a las ciencias de la computación. Hoy en día casi toda la tecnología, los sistemas y aplicaciones tienen sus orígenes en C o en UNIX, es por eso que con estas líneas quise contribuir un poquito a difundir más su nombre, ya que su aporte a todos nosotros los programadores es incalculable. ¡Mil gracias Dennis! Tienes todo mi respeto. 🤠
"Las herramientas que Dennis construyó - Y sus descendientes directos - hacen funcionar prácticamente todo hoy en día".
Brian Kernighan
“UNIX es muy simple, solo que se necesita ser un genio para entender su simplicidad”
Dennis Ritchie, alias dmr o comp.lang.c para los amigos
Comparte esta entrada si te gustó o te aportó valor o si eres hincha de Dennis Ritchie 😄🤠
Y su obra, su libro como coautor con Brian Kernighan, «El lenguaje de programación C», es de una elegancia y aparente sencillez, que bien refleja la genialidad de sus autores al hacernos parecer sencillo algo que, en el fondo, es verdaderamente complejo.
Mi eterna admiración a Dennis MacAlistair Ritchie, alias dmr.
dmr fue un grande, y por eso respeto mucho su nombre y su legado. Un abrazo Bladimir.