"Hola, mundo!" es la fórmula tradicional usada como ejemplo cuando alguien codifica su primer programa informático. Hace un tiempo, aquí en Genbeta, repasamos los antecedentes de dicha fórmula para reconstruir su origen y saber quién fue el primero en usarla.
La tradición indica que fueron Brian Kernighan y Dennis Ritchie quiénes, en el libro de 1978 'C Programming Language', incluyeron por vez primera un 'hello, world!'. Sin embargo, recogíamos en aquel artículo referencias que demostraban que Kernighan, en un texto en solitario publicado 5 años antes, ya había usado esta frase en un breve libro llamado "A tutorial introduction to the language B".
Y sí, la letra está bien puesta: escribió primero sobre el lenguaje B y luego sobre el C. No, no sabemos que antes escribiera sobre el A.
Por cierto, preguntado sobre las razones por las que optó por esa frase, Kernighan afirmaba hace 11 años lo siguiente:
"Mi memoria es difusa ahora. Lo que sí recuerdo es que había visto una caricatura que mostraba un huevo y una chica y la chica decía: 'Hola, mundo'".
La leyenda de Unix
La cuestión es que, cuando escribió ese histórico tutorial, Kernighan era sólo conocido por ser un canadiense doctorado en ingeniería eléctrica de 31 años (había nacido en 1942, cuando Alan Turing estaba ocupado descifrando mensajes en código Enigma). De modo que, ¿qué fue de él después de eso? ¿Sigue vivo? ¿A qué ha dedicado su vida?
La cuestión es que, posiblemente, su mayor contribución a la historia de la informática la realizó cuatro años antes de escribir ese 'Hello, world!', aunque su repercusión todavía no estaba clara en ese momento.
Había empezado a trabajar en los Laboratorios Bell de AT&T en 1969, donde empezó a colaborar con un grupo de investigadores liderado por Ken Thompson (el creador de B y de las expresiones regulares) y Dennis Ritchie (el creador de C), que trataban de crear su propio sistema operativo inspirado en Multics, pero más sencillo y manejable. Se convirtió así, ese mismo año, en uno de los padres de UNIX.
La importancia de UNIX empezó a quedar clara tras el exitoso lanzamiento de su histórica Versión 7, ocurrida en 1979, y que incluía varias aplicaciones desarrolladas por Kernighan, como cron y AWK… que los conocedores de Linux —descendiente de UNIX, como lo es también MacOS— conocerán bien.
La 'K'
'K&R' es el nombre con el que se conoce en entornos 'geeks' al muy influyente libro que mencionábamos al comienzo del artículo sobre C (coescrito junto al creador del mismo); la 'K', por supuesto, era una referencia a Kernighan. Según el Jargon File, a la primera versión de 1978 se la conoce como 'The Old Testament', y a la segunda, de 1988, como 'The New Testament'.
Pero nuestro protagonista también le puso la letra 'K' al nombre de una de sus creaciones más influyentes, el ya mencionado AWK (1977), un potente lenguaje de scripting para el procesamiento avanzado de cadenas de texto. Sus creadores son Alfred Aho, Peter Weinberger y el propio Brian Kernighan (A, W y K, por supuesto).
De acuerdo a la naturaleza del software libre, con el tiempo AWK se ha fragmentado en varias versiones paralelas con leves diferencias de funcionalidad y sintaxis. Pero en cualquier caso, son herramientas que no suelen recibir grandes actualizaciones muy a menudo.
Pero recientemente, 'one true AWK' (nombre semi-oficial de la versión original de AWK) recibió una actualización relevante, concretamente la implementación de soporte Unicode… algo que quizá no suene muy emocionante, pero que sin duda constituye un salto adelante en cuanto a la utilidad de la aplicación.
Al pie del cañón
Y el autor de esa contribución al código es, nada más y nada menos que el propio Brian Kernighan, quien acaba de cumplir los 80 —sí, 80— años. Explicaba la razón de esta actualización en una reciente entrevista en el canal de YouTube Computerphile:
"Siempre ha sido una vergüenza que AWK solo trabajara con ASCII y no manejara en lo más mínimo Unicode. […] En este punto, AWK será capaz de manejar la entrada y salida UTF-8 para que puedas tener expresiones regulares que reconozcan los caracteres japoneses y cosas por el estilo".
En la misma entrevista cuenta que también ha introducido un parche "rápido y sucio" en el código de AWK para permitir que el programa maneje archivos CSV.
En realidad el código no fue remitido como un commit propiamente dicho al repositorio en GitHub de AWK, sino por mail al mantenedor actual del proyecto, Arnold Robbins. El motivo es que Kernighan parece no manejarse del todo con Git:
"Ojalá entendiera mejor git, pero a pesar de tu ayuda, todavía no tengo una comprensión adecuada, por lo que esto puede llevar un tiempo".
A la comunidad no parece haberle importado ese detalle: ahora que el código se ha incorporado al repositorio gracias a Robbins, los usuarios ha celebrado la calidad y utilidad de la contribución del mítico creador de su herramienta favorita.
Y además…
Además de Unix, Hello World!, cron, 'K&R' y AWK, Kernighan creó otro lenguaje de programación (AMPL, de 'A Mathematical Programming Language') en sus tiempos en Bell, y después de eso tenido tiempo en estas décadas —cuando sus responsabilidades como docente de computación en Princeton se lo permiten— de escribir un buen puñado de libros…
…de hecho, los últimos tratan temas como la comprensión del mundo digital, la comprensión de los datos y las matemáticas por parte del público no especializado, e introducciones a UNIX y al lenguaje Go. Antes de eso, fue editor de la serie de libros 'Software Tools' para la editorial Prentice Hall Internacional.
80 años (y los que le quedan) que han dado para mucho: es uno de los últimos de la generación de gigantes a cuyos hombros se levantan ahora los 'emprendedores' de 'startups' de Silicon Valley.
Ver todos los comentarios en https://www.genbeta.com
VER 1 Comentario