Os quiero hablar de una de las figuras de la computación que más admiro, Jean E. Sammet. No es para menos, esta programadora fue una de las primeras en enfrentarse al ENIAC y en recorrer los caminos que llevaban de las matemáticas al campo de la programación en los años 50, ¿conocías a las programdoras del ENIAC?
Uno de los beneficios de profundizar en la Historia de la Computación y más específicamente de los Lenguajes de Programación, es encontrar cómo trabajaron los pioneros en computación y cómo surgieron los primeros lenguajes de programación. Hay mucho desconocimiento sobre esa época y aunque muchos consideran que la mujer quedó oculta en la Historia, nada más lejos de la realidad, sin embargo, hay que tener ciertos factores bien claros.
¿Por qué no sabemos de programadores célebres?
No es completamente cierto, porque si has pisado una Universidad de seguro que te suenan algunas figuras ilustres como Edsger Dijkstra, [John McCarthy]((/historia-de-los-lenguajes-de-programacion), Robert Floyd y sobre todo Alan Turing o Ada Lovelace. Alan Turing fue considerado el padre de la computación a título póstumo y Ada Lovelace la primera programadora, aunque hay cierta controversia en torno a este hecho.
Muchas de las figuras que aparecen hoy en día relacionadas con el mundo de la programación casi ni saben programar, por ejemplo, muchos consideran a Steve Jobs o incluso Bill Gates como programadores a seguir. Teniendo en cuenta de que Steve Jobs era diseñador de sistemas electrónicos y Bill Gates solo programó Altair Basic (que se sepa) y no lo hizo solo, por lo que dada su carrera se puede decir de ambos que fueron grandes comerciales, estrategas, empresarios, emprendedores, pero yo dudaría nombrarlos programadores.
Pero entonces, ¿por qué conocemos a tan pocos programadores? Pues principalmente porque la programación es una actividad que se relaciona principalmente con hacer un trabajo. Quien trabaja y gana dinero con ello normalmente no busca fama o reconocimiento, simplementa ganar dinero y hacer su trabajo bien. Es algo que puedo constatar tras hacer la investigación sobre lenguajes de programación para mis libros. Desgraciadamente, gente muy brillante como por ejemplo la creadora de BACAIC, Mandalay Grems, solo podemos encontrar en Internet información suya de la conferencia donde presentó BACAIC y su obituario.
Otro caso más reciente, aunque de este personaje sí que sabemos mucho porque se presta a ser entrevistado, es Guido van Rossum, el creador de Python. Sin embargo, a diferencia de otros grandes programadores a los que sí les gusta la fama, como Linus Torvalds, Guido no quiere reconocimiento, simplemente quiere trabajar como programador y nada más.
No obstante, en la Universidad, aunque te hablan de Dijkstra, no te dicen que gran parte de su carrera la hizo sin siquiera acercarse a un computador. Tiene su sentido e historia y la comentaré en otro artículo. Por otro lado, McCarthy, uno de los padres de la IA (para mi el padre siempre será Herbert Simon) comenta en su historia que la programación la realizaban programadores y muchas de las labores concernientes a implementaciones e incluso uso de LISP fue por parte de su equipo. Es innegable que McCarthy fue la mente tras LISP, pero al igual que Backus no implementó FORTRAN, McCarthy no implementó LISP, se rodearon de gente capaz para alcanzar sus objetivos donde ellos no llegaban.
¿Qué programadores deberíamos conocer?
Hay muchas figuras de las que podemos aprender no solo por su Historia sino también por el código que han dejado escrito. Sin lugar a dudas, las fuentes de código abierto y software libre son una increíble biblioteca abierta para poder zambullirse en la lectura de código.
El caso de Linus Torvalds con respecto a Linux y Git son bastante paradigmáticos. Aunque es obvio que Linus no ha escrito todo el código presente en esos proyectos, sí que ha estado de forma activa revisando y asegurándose de que el proyecto no pierda su visión, la forma en la que el código se agrega a sus proyectos y las características que cubren.
Otro gran proyecto, con largo recorrido y que es odiado y amado a partes iguales creando una de las "guerras" que más han dividido a programadores entre las últimas décadas del siglo XX fue Emacs y Richard Stallman al frente de este proyecto. Emacs es el editor de texto o entorno de desarrollo más completo y aunque sus detractores dirán que cualquier versión de Vi es mejor (o al menos más fácil de utilizar) sigue siendo sin lugar a dudas otra buena fuente de código y un buen sitio donde practicar LISP a través de sus extensiones.
Viajando un poco más al pasado podemos encontrar COBOL. Desgraciadamente, si el código fuente de este lenguaje está disponible en algún repositorio lo ignoro, pero de todas formas es el lenguaje que ha reinado en el mundo empresarial desde los años 60 y aún mantenido tanto por ANSI a través de estándares como de IBM que lo mantiene. Las ideas de diseño propuestas por el comité inicial y basadas principalmente en el lenguaje FLOWMATIC creado por Grace Hopper muestran la capacidad de esta matemática convertida en programadora que supo cómo llegar a los negocios con lenguajes que se adaptaban a sus necesidades.
Esta lista no estaría completa sin figuras tan importantes dentro del mundo de la computación como Jean Sammet o Donald Knuth que lejos de haber construido algún proyecto que haya superado la prueba del tiempo, sí que nos regalaron libros donde mostraron su destreza y conocimiento en los lenguajes de programación. Jean Sammet en 1969 publicó el primer libro de Historia (con la friolera de 820 páginas) donde comentaba todos los lenguajes de programación conocidos, su historia y cómo utilizarlos. Más tarde, en los años 80 Donald Knuth seguiría esta línea para mostrar también cómo trabajar con estos lenguajes del siglo XX implementando el mismo programa una y otra vez en cada uno de los lenguajes.
¿Qué programadores agregarías a la lista?
Sobre Jean Sammet y la Historia
Como dice el título y perdón por la miscelánea en las últimas secciones, una de las figuras que más admiro es a Jean Sammet por dedicar su tiempo a guardar parte de la Historia que estaba sucediendo en ese momento, desde su posición ella no nos contó una Historia ajena sino que formó parte de ella, nos contó su vida laboral ya que estuvo implicada en el ENIAC donde se desarrolló ShortCode, conoció y estuvo involucrada en la creación de COBOL y formó parte de IBM donde surgirían y se adoptarían otros lenguajes y tecnologías.
Sammet no solo nos abrió las puertas a conocer la computación y la programación, como buena reportera de "guerra" nos hizo un recorrido sobre cómo se empleaban esos lenguajes de programación, pudo documentarse de primera mano gracias a tener disponible a los creadores de la mayoría de tecnologías sobre las que escribió y sin duda, este libro de Lenguajes de Programación debería constituir una lectura recomendada en todo curriculo de estudios relacionados con la informática.
Además, aunque aún no he llegado a esta parte de su historia, se le atribuye pertenecer al grupo creador de otro lenguaje por comité, el lenguaje Ada, del que otros lenguajes como C++ tomaron algunas de sus buenas ideas de diseño.
El prólogo del libro
Como he mencionado en el título y se puede ver en la miniatura del artículo, el libro de Jean Sammet al que me refiero es el de Programming Languages: History and Fundamentals. En el prólogo se comenta:
El principal propósito de este libro es servir como referencia para una vista a alto nivel de los lenguajes de más alto nivel. El libro concentra en un único sitio y de forma consistente información fundamental sobre lenguajes de programación, incluyendo historia, características generales, similaridades y diferencias.
Este propósitio principal hoy en día sería inabarcable. Imagina. Con 20 años de Historia, en 1969, un listado de todos los lenguajes de programación, historia, características y comparaciones entre ellos. Además, en un vistazo rápido al libro puedes darte cuenta de que muchos lenguajes de programación se omitieron, quizás porque no alcanzaban la categoría de alto nivel o porque en ese momento y desde el punto de IBM y EEUU no tenían constancia de su existencia.
No obstante, me parece un propósito loable y un libro muy a tener en cuenta para el estudio de los lenguajes de programación.
No obstante hay más propósitos, sigamos:
El segundo propósito de este libro es proporcionar información específica básica de todo el lenguajes de programación significativos de más alto nivel desarrollados en los Estados Unidos.
Nos deja claro que el libro cubrirá solo los lenguajes más relevantes o significativos y de alto nivel en uso en los EEUU. Esto quiere decir que no esperes encontrar páginas hablando de Plankalkul o Superplan, por ejemplo. Estos lenguajes fueron pioneros pero no relevantes en los EEUU.
El tercer propósito de este libro es proporcionar historia y perspectiva para este aspecto particular del campo de la programación. Los comentarios en ambos son responsabilidad de la autora y no tienen porqué ser necesariamente aceptados por todos.
La autora nos da también su perspectiva y comentarios sobre estos lenguajes avisando previamente que son sus comentarios y su perspectiva. Muy respetable y si lees el libro los encontrarás inestimables porque no son comentarios y la perspectiva de alguien ajeno, sino de alguien que estaba en esa vorágine de trabajo diariamente.
El lenguaje más conocido (FORTRAN) es meramente uno de los aproximadamente 120 lenguajes descritos en este libro.
Un libro para aprender cómo trabajaron nuestros predecesores con 120 lenguajes de programación diferentes. Creo que para mi no hay nada más que decir. Si te gusta saber de otros lenguajes de programación, incluso aunque solo sea a nivel "arqueológico", es una lectura que no deberías perderte.
Conclusiones
Sí, el libro de Jean Sammet es muy completo y mi trabajo no le llega ni a la suela de los zapatos, pero, en mi defensa he de decir que ni yo estoy tan metido en la programación de esa época (ella habla desde el conocimiento de muchos de esos lenguajes y ha experimentado con más de uno) pero aún así he ahí mi trabajo, explicado de forma un poco más accesible y agregando un poco más de Historia.
Por si no los conocías, aquí tienes las historias de los programadores de las décadas de 1940 y 1950 y por aquí las historias de los programadores y lenguajes de la década de 1960. Espero los disfruteis tanto como yo escribiéndolos.