Opinión O418Opinion Manuel Mejores 5480 ( T ) Los mejores en informática son ... personas Manuel Dávila Sguerra mdavila@uniminuto.edu Desde que escribí el artículo “Monumento al programador desconocido” he tenido claro que en el mundo comercial se habla de los artefactos, pero no? de las personas. Por eso, en esta edición intento hablar de alguna tecnología con énfasis en las personas que las construyeron. Esta inquietud la hemos planteado, y estamos trabajando en ella, en la red de Decanos y Directores de Ingeniería de Sistemas – REDIS (las iniciales son las que dan el nombre, por eso no deben ir en minúscula, más bien el acrónimo debe ser Redis, pero si el logo ya está establecido con mayúscula se puede deja, y el único signo autorizado por las Academias para explicar o renombrar es el paréntesis, así que esas rayitas no son apropiadas)) y en la Asociación Colombiana de Ingenieros de Sistemas (ACIS), centrados en la imagen del Ingeniero de Sistemas en nuestro país. En general nuestra labor pasa desapercibida, no se conoce cuál es su utilidad y a veces se confunde con el simple manejo de herramientas de oficina. Mientras tanto el software, que lo construimos nosotros, es producto de seguridad nacional y no hay ya casi ninguna actividad en la vida que no se mueva utilizando tecnología. Inclusive, quienes quisieran refutar esta última frase, tal vez lo hagan usando un procesador de palabra. El filósofo Ernst Jünger consideró que nosotros, los técnicos, no hemos podido posicionarnos en la sociedad. Lo dice así, en su libro “El trabajador Dominio y Figura”: “En especial resulta sorprendente que los técnicos no logren ni siquiera inscribir su propia definición dentro de la imagen que capte la vida en el conjunto de sus dimensiones ....para poseer una relación verdadera y efectiva con la técnica es preciso ser algo más que un mero técnico”. La corta historia que nos ocupa tiene que ver con dos neurofisiólogos, llamados Warren McCulloch y Walter Pittsque que en el año de 1940 se dedicaron a describir el sistema nervioso para tratar de modelar el funcionamiento de las neuronas, como si fueran autómatas, es decir, como máquinas abstractas. La inquietud nació por la pregunta ¿por qué un ser humano que lee un texto, lo logra comprender? Años después, el matemático Stephen Kllene describió estos modelos usando una notación matemática llamada conjuntos regulares, la cual vino a ser usada por Ken Thompson, en 1968. Thompson fue el creador del lenguaje B, precursor del lenguaje C de Dennis Ritchie. Ambos idearon el sistema operacional Unix. Thompson convirtió la inquietud mencionada en software e incluyó dicha notación dentro de un editor de texto llamado ged, el cual fue incluido en Unix, en donde se implementó en múltiples programas de utilidad. En general, intento no mencionar nombres técnicos porque ellos no son lo importante, pero sé que a algunos Ingenieros les gusta y los orienta y por eso me daré esa libertad solo en lo que resta de este párrafo. Algunos de esos programas de utilidad fueron grep, expr, awk, Emacs el editor de Richard Stalman el creador del concepto del Software LIbre, vim, lex y el lenguaje Perl. A todo esto se le llamó las expresiones regulares cuya implementación más poderosa está en el lenguaje Perl, escrita por otro pionero llamado Henry Spencer. De ahí nació la librería Compatible Regular Expressions usada en las herramientas modernas. En resumen, las llamadas expresiones regulares. Después de esta corta, semibiográfica y complicada explicación, veamos cómo estas herramientas las usan ustedes, sin darse cuenta, cientos o miles de veces en el mes. La notación permite hacer tratamiento de textos planos, también llamados datos no estructurados; ese que nos llega en los sistemas de información, en los correos electrónicos y en general en lo que usamos cotidianamente para hacer nuestro trabajo de personas normales(tal vez mejor “comunes y corrientes”). Con ellas ¿a quién se refiere “con el ellas?”, pareciera que a las personas, pero podría ser a los “datos no estructurados”o a la “notación” o muy remotamente a las “herramientas”, no está claro y eso influye en el párrafo que sigue., los programadores construimos algoritmos para ser usados de forma amigable, por ejemplo para indagar por la presencia de textos que estamos buscando en internet; son la esencia de los motores de búsqueda que usamos diariamente. Personalmente, las he utilizado en la implementación de mi plataforma orientada a la nube llamada e-Genesis - El generador de sistemas que es la base de mi investigación sobre la generación automática de programas. Gracias a ellas he logrado escribir mi propio control de spam, mi propio sistema de correo electrónico y de discos virtuales, los motores de búsqueda, un sistema que permite que los programas se autodocumenten sin intervención humana, un mecanismo para comunicarme con el servidor como si este fuera una persona y hacer que él obedezca mis ordenes (comandos) y muchas otras funcionalidades. Visto desde dentro, la sintaxis del lenguaje es críptica, pero ese es problema de nosotros los programadores; ante el usuario lo debemos hacer aparecer como lenguaje natural. Una vez escribí un artículo cuyo título era /^\/[\/\-[A-Za-z0-9]+\/$/) y decía que esto no era un error del procesador de palabra, era una expresión regular que buscaba dentro de un texto, comandos de un sistema operacional. En todo ese texto no estructurado que recibimos en Internet es necesario encontrar algún tipo de inteligencia, bien sea para indagar sobre él, buscar conceptos que nos sean útiles guiados por el mismo texto, buscar y controlar accesos indebidos de comunicaciones sospechosas y, aun, para construir, usando el lenguaje natural, formas de comunicarse con los computadores con algo de inteligencia artificial. Todo esto, gracias a los pioneros mencionados quienes son en realidad lo más importante dentro de este mundo tecnificado. Termino sugiriendo que cada vez que hagan una búsqueda en Google le hagan un monumento en la mente, al programador desconocido.