Gracias al trabajo y al esfuerzo de personas como Dennis Ritchie con el lenguaje C, Guido van Rossum con Python o el comité del CODASYL que trabajó en el desarrollo del lenguaje COBOL, los programadores cuentan con herramientas que les permiten desarrollar programas que pueden ser ejecutados en cualquier computadora, trabajando con lenguajes de alto nivel que evitan que tengan que trabajar en ensamblador. Si echamos la vista atrás podremos encontrar nombres propios de personas cuya carrera ha estado vinculada al desarrollo de sistemas operativos o lenguajes de programación, sin embargo, entre todas ellas hay un nombre muy especial: Niklaus Wirth, un ingeniero de nacionalidad suiza y premio Turing en 1984 que ejerció de ingeniero jefe en el desarrollo de nada más y nada menos que 8 lenguajes de programación además de desarrollar algunos textos fundamentales en la enseñanza de la programación.
Niklaus Wirth nació el 15 de febrero de 1934 en Winterthur, en el cantón de Zúrich (Suiza) que en 1959 terminó sus estudios universitarios obteniendo el título de Ingeniero en Electrónica por el Insituto Federal de Tecnología de Suiza (ETHZ). Al año siguiente, Wirth marchó a Canadá y obtuvo un Master of Science en la Universidad de Laval y en 1963 otuvo el Doctorado en la prestigiosa Universidad de California - Berkeley desde donde saltaría a la Universidad de Stanford para impartir clases como profesor auxiliar hasta volver como profesor a la Universidad de Zúrich y, en 1968, pasar a impartir clase al Insituto Federal de Tecnología de Suiza, institución a la que permanecería adscrito hasta su jubilación como docente en 1999.
Tras acceder al ETH y obtener una plaza de profesor, Wirth se tomaría 2 años sabáticos (el primero en 1976 y el segundo en 1984) para marchar de nuevo a Estados Unidos y entrar en una las mayores incubadoras de ideas tecnológicas del mundo, el prestigioso Xerox PARC de Palo Alto (California).
Con este curriculum académico tan impresionante y dos estancias en el prestigioso Xerox PARC, Niklaus Wirth se convirtió en un afamado profesor de universidad que lideró proyectos de diseño de lenguajes de programación, compiladores, sistemas operativos y sistemas hardware en los que destacaba una seña indiscutible: la búsqueda de la simplicidad, un factor que se plasmó en muchos de sus trabajos y libros que se utilizan en para enseñar programación hoy en día, como por ejemplo "Algoritmos + Estructuras de datos = Programas" (1975) o "Desarrollo de un programa por refinamiento sucesivo" (1971).
En nuestra profesión, precisión y perfección no son un lujo prescindible, son una simple necesidad
En el campo de los lenguajes de programación, Wirth ejerció de jefe de diseño de múltiples lenguajes de programación:
Euler (1965) fue un lenguaje de programación creado por Wirth junto a Helmut Weber como extensión del lenguaje ALGOL 60 que era bastante utilizado en las universidades de la época. ALGOL 60 era un lenguaje de programación algorítmico que Wirth y Weber mejoraron para que fuese mucho más simple y eficiente, añadiendo nuevos tipos de datos.
ALGOL W (1966) fue la segunda aproximación de Wirth al lenguaje de programación ALGOL 60. Junto a Tony Hoare, y basándose en los trabajos del grupo de ALGOL de la IFIP, desarrollaron un lenguaje conciso que salvaba los defectos conocidos de ALGOL y que, además, incluía características adicionales (aritmética de doble precisión, números complejos, cadenas de caracteres y estructuras de datos dinámicas, evaluación por valor, etc). El grupo de trabajo de ALGOL no llegó a adoptarlo y lo dejó como una variante que, al final, fue adoptada por muchos usuarios, preparando el camino al lenguaje de programación Pascal.
Pascal (1970) fue un lenguaje de programación desarrollado por Wirth entre 1968 y 1970 con el objeto de crear un lenguaje que facilitase el aprendizaje de la programación a sus alumnos de universidad y, con tal fin, ideó un lenguaje en el que se primase la programación estructurada y el uso de estructuras de datos. El lenguaje Pascal estaba dividido en secciones de código llamadas funciones o procedimientos que eran fácilmente identificables y rompían con la programación monolítica. Pascal se convirtió en un lenguaje extremadamente popular en la década de los 70 que llegó a traspasar los muros de la universidad y se usó para el desarrollo de algunas aplicaciones comerciales.
Modula (1975) fue una evolución de Pascal, desarrollada también por Wirth, en la que se incluyó un sistema de módulos para agrupar las declaraciones correspondientes a cada una de las unidades de programa que, además, sirvieron para otorgarle el nombre a este lenguaje de programación.
Modula-2 (1978) fue una evolución de Modula y, por tanto, de Pascal en el que se introdujo el concepto de encapsulación en el que parte del código del programa permanecía oculto a desarrolladores ajenos y éstos únicamente tenían acceso a una interfaz pública (llamada módulo de definición) con la que podían trabajar sin posibilidad de realizar modificaciones a las estructuras principales de la aplicación. Este concepto tiene ciertas similitudes con las clases u objetos de la Programación Orientada a Objetos y aunque Modula-2, formalmente, no lo es, sí que se considera un precursor de este paradigma.
Oberon (1986) sí que es un lenguaje de programación orientado a objetos desarrollado en el ámbito del ETHZ de Suiza bajo la dirección de Niklaus Wirth. Tomando como base Modula-2, el equipo de Wirth trabajó en un soporte completo para la orientación a objetos al que le añadió un recolector de basura.
Oberon 2 (1991) fue un lenguaje de programación que se concibió como un rediseño completo de Oberon al que se dotó de eficientes métodos virtuales (llamados procedimientos consolidados) cuyas llamadas se resolvían en tiempo de ejecución utilizando el lenguaje de programación C++.
Oberon-07 (2007) es un proyecto impulsado por Wirth en el año 2007 y cuya última revisión es del pasado año 2011. En esta ocasión, Wirth tomó como base el lenguaje Oberon original y se le añadieron funciones de conversión numéricas, se eliminaron las sentencias de bucle y de salida y se extendieron las declaraciones.
El Software se ralentiza mas rápidamente de lo que el Hardware mejora
Además de recibir el prestigioso premio Turing en 1984, Niklaus Wirth ha sido galardonado también con los siguientes premios.
Emanuel R. Piore Award or achievement in the field of Information Processing contributing to the advancement of science and the bettermentof society* del IEEE (1983)
Computer Pioneer Award* del IEEE (1987)
- Miembro honorífico de la Academia Nacional de Ingeniería de Estados Unidos (1994)
En el año 1999, Niklaus Wirth se jubiló como Catedrático del Insituto Federal de Tecnología de Suiza (ETHZ) pero sigue en activo, por ejemplo, trabajando en Oberon-07, impartiendo conferencias y asistiendo a algún que otro congreso.
Imágenes: Alpen-Adria Universitat, Wikipedia y Ethnos