El currículo de Niklaus Wirth es impresionante. Se graduó en Ingeniería Electrónica en la Escuela Politécnica Federal de Zúrich, la misma universidad en la que cinco décadas antes estudió Albert Einstein; se doctoró en la Universidad de California en Berkeley; trabajó en Xerox PARC y dio clase en Stanford, en la Universidad de Zúrich y en la misma Escuela Politécnica Federal en la que unas décadas antes él mismo había estudiado. Sin embargo, Wirth no será recordado por nada de esto.
Los logros que lo colocan a la misma altura de otros científicos expertos en computación, como Andrew S. Tanenbaum, programador del sistema operativo Minix y autor de varios libros de referencia dedicados al diseño de sistemas operativos; o Bjarne Stroustrup, el creador del lenguaje C++ y autor de varias obras de programación de consulta recomendada, son, precisamente, sus publicaciones. Y, sobre todo, uno de los muchos lenguajes de programación de cuyo diseño es en gran medida responsable: Pascal.
'Algoritmos + estructuras de datos = programas'
La vocación didáctica de Niklaus Wirth está fuera de toda duda. La calidad de sus libros desde un punto de vista estrictamente educativo es muy alta, lo que ha provocado que, a pesar de que muchos de ellos han sido escritos hace décadas, sigan siendo utilizados en muchas facultades de Ingeniería en Informática, y también en otros estudios de Grado, para enseñar tanto técnicas de algoritmia como los fundamentos de la programación estructurada.
A pesar de haber sido escrito hace más de cuatro décadas, 'Algoritmos + estructuras de datos = programas' sigue siendo un punto de partida extraordinario para aprender a programar
Algunos de sus libros más conocidos son 'Introducción a la programación sistemática' y 'Algoritmos y estructura de datos', pero no cabe duda de que la obra por la que será recordado es 'Algoritmos + estructuras de datos = programas', que es la versión original del segundo libro que he mencionado en este párrafo. Wirth publicó este clásico en 1976, y, a pesar de haber sido escrito hace más de cuatro décadas, sigue siendo un punto de partida extraordinario para todos aquellos estudiantes sin experiencia que quieren aprender programación.
Este libro de texto de Wirth arranca con una introducción a las estructuras fundamentales de datos, continúa explicando cómo ordenar arrays y ficheros secuenciales, y finaliza abordando los algoritmos recursivos, las estructuras dinámicas de información y los compiladores. Todas y cada una de las páginas de este libro son una pequeña joya, pero, en mi opinión, el capítulo dedicado a los algoritmos recursivos tiene el enorme mérito de hacer fácil lo que a la mayor parte de las personas que dan sus primeros pasos en el mundo de la programación suele atragantárseles. Un apunte más: los ejemplos de este libro están escritos en Pascal.
De la Ley de Wirth a Pascal
En 1995 Niklaus Wirth publicó un artículo titulado 'A plea for lean software' (lo podemos traducir como 'Una petición por el software austero') que ha acrecentado aún más su prestigio debido a que en su texto propone una reflexión que describe muy bien el desarrollo que están experimentando el software y el hardware durante las últimas décadas. La Ley de Wirth, que es como se conoce su observación, defiende que «el software se vuelve lento más deprisa de lo que se acelera el hardware».
Wirth insinúa con mucha claridad lo importante que es escribir código eficiente y bien optimizado. Su complejidad y tamaño no dejan de incrementarse, y el hardware, a pesar de que se desarrolla a una velocidad a menudo vertiginosa, no experimenta un grado de desarrollo equiparable a la complejidad creciente del software. Curiosamente, esta reflexión ha calado hondo en otras personas relevantes de la industria de la informática, como Larry Page, cofundador de Google, o Bill Gates, cofundador de Microsoft. Y es que la han enunciado en varias ocasiones introduciendo ligeras modificaciones para describir el ritmo con el que se incrementa la complejidad del software y se reduce su eficiencia.
En cualquier caso, si nos ceñimos al ámbito académico, que es en el que Niklaus Wirth siempre ha parecido sentirse como pez en el agua, su contribución más importante es el lenguaje Pascal. Ejerció como máximo responsable del diseño de muchos otros lenguajes de programación, como Modula-2, Euler o ALGOL W, pero Pascal ha demostrado ser una excelente opción para formar nuevos programadores. De hecho, a pesar de que Wirth lo creó a finales de la década de los 60, sigue siendo utilizado por muchas facultades de informática y otras carreras universitarias para enseñar programación estructurada.
Pascal permite a las personas que están aprendiendo programación concentrarse en el desarrollo de los algoritmos y adquirir hábitos saludables
Pascal es un lenguaje sencillo y completo que recurre a unas estructuras sólidas, lo que permite a las personas que están aprendiendo programación concentrarse en el desarrollo de los algoritmos y adquirir hábitos saludables. Actualmente es difícil verlo fuera del ámbito educativo, pero durante las tres décadas siguientes a su creación se utilizó con frecuencia como un lenguaje de desarrollo profesional.
Hoy en día los estudiantes que aprenden a programar con él deben estudiar posteriormente otros lenguajes, especialmente los orientados a objetos, como Java o C++, pero no cabe duda de que Pascal sigue siendo una herramienta muy valiosa para iniciarse en el mundo de la programación. De hecho, las buenas prácticas que promueve este lenguaje encajan como un guante en muchos otros lenguajes de programación. Y, sobre todo, facilita su aprendizaje gracias a la habilidad con la que nos ayuda a consolidar nuevas estructuras mentales. No cabe duda de que, a pesar de su veteranía, al lenguaje Pascal aún le queda una larga vida por delante.