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.
Ver 25 comentarios
25 comentarios
ixma
Recuerdo que en primer año de carrera era algo recurrente escuchar a los enteradillos de turno quejarse de que Pascal no servía para nada, que en el mundo real casi no se usaba y que porqué no se daba java, Python o C++, lenguajes más populares en esos momentos. Mucha de esta gente terminó la carrera sin pillar que el objetivo de las asignaturas de programación no era enseñarnos un lenguaje, sino algoritmia y buenas costumbres. A pensar como un programador.
Pascal no es el lenguaje más utilizado ni el más potente, pero sí que me parece un magnífico lenguaje para enseñar a programar.
jotajc
Le pido a mi amigo Jose (cursaba 3º de informàtica) que me enseñe a programar. Yo ya había tocado gwbasic y estudié con un turbo pascal desde un CP/M (años 80). Me dijo: coge este libro (Wirth), leételo entero y hablamos.
Desde entonces mi forma de programar se ha basado siempre en sus enseñanzas: ordenación, recorrido de árboles, estructuras... Ya no programo profesionalmte desde hace unos 15 añosl.
Según veo en lenguajes actuales no siempre es obligada la declaración de variables y hay conversiones de tipos implícitos. Yo diría que es una fuente potencial de errores, pero veo que los tiros no van por ahí.
Este libro es para mí referencia absoluta, y Wirth se merece un monumento (igual lo tiene). Y si además cuentas con un entorno, por entonces, como Turbo Pascal, el cóctel es explosivo.
Jose nos dejo terriblemente pronto, con 27 años, pero su influencia (especialmente como amigo) me ha arropado a menudo durante mi vida. Va por tí.
Gracias por el artículo.
albertojsp
Yo empecé a programar allá por el 99 en la carrera con Modula-2. Que recuerdos, no tenía ni idea de programar, algunos de mis compañeros sabían de todo.
Luego aprendí C, C++.... y sucesivos. Mucha gente me decía que Pascal no valía para nada que Java era mejor (Java es mejor pero eso no hace peor a Pascal). Después de tantos años, ahora soy Jefe de Desarrollo de una gran empresa, mientras que tantos de esos "mega" programadores que se reían por gustarme Pascal y Delphi, sólo son "picateclas".
Yo aprendí a programar con este lenguaje, igual que otras personas han aprendido con otros. Lo que de verdad importa no es tú primer lenguaje de programación, sino que aprendas a "programar".
Yo ahora programo en muchísimos lenguajes (unos 10, sin exagerar), tanto para Web, Escritorio y Aplicaciones Móviles, y sin Pascal esto no hubiera sido posible.
Le tengo mucho cariño y a Delphi, aunque hace años que no lo toco. Mi consejo es que aprendáis a programar en vez de un lenguaje de programación, consejos de un "viejo" en esto de la programación, jajaja.
josemicoronil
No conocía la obra de Wirth, pero posiblemente me busque alguno de los libros que mencionáis para echarle un vistazo. ¡Gracias por dármelo a conocer!
Sé que Pascal, y más concretamente Delphi, lo usan algunas empresas de software de gestión para empresas, y aunque no lo haya usado personalmente, sé que mantiene todas las ventajas en eficiencia propia de los lenguajes puramente compilados.
Una lástima que cada vez más se esté dejando de lado este tipo de lenguajes a la hora de desarrollar frente a otros que, por un lado tienen que ser interpretados o ejecutados en alguna máquina virtual, y por otro lado no hacen demasiado por motivar al programador a usar las mejores prácticas posibles.
realyoprogramo
Pues a mi Pascal me sirvió mucho al principio de los tiempos (hablo de los 90) a escribir software profesional en Turbo Pascal y Delphi ... Los olvidé hace tiempo, pero indudablemente forjaron parte de mis costumbres como programador.
Usuario desactivado
Tengo que coincidir con los demás comentarios, en su día puede que tuviese más relevancia pero cuando lo aprendí en su momento en primero de carrera siempre tuve la intención de que servía para poco más que aprender a programar.
Y bien que sirve, ya sólo por eso es un lenguaje que merece la pena.
p2dzca
¡Qué gran libro y qué genio Niklaus Wirth!
He desviado la mirada hacia una estantería al leer el artículo, he visto el libro y lo he cogido. Hacía tiempo que no lo abría. Sus páginas han cogido el tono amarillento de la edad y huelen a libro viejo. Se editó en español en el año 1980. Yo tengo una tercera edición, de 1984.
jorgeturiel
Pascal sigue vivo. Existe free Pascal que implementa objetos (object Pascal)y su ide Lazarus una alternativa open source a Delphi. Muy activo y multiplaforma. Windows, Mac, Linux, android, sistemas embebidos. En Delphi hay programas profesionales, como Skype que fue escrito en este lenguaje. En el año 1998 salió el simulador Falcón 4.0 programado en Delphi. Que actualmente sigue la comunidad desarrollando.
manuelcr
Pascal te enseña a pensar de forma estructurada, te enseña cómo debe implementarse el código, qué una función y qué es un procedimiento, te ayuda a entender cómo funcionan los punteros y empezar con ellos.
Y luego, a partir de eso te ayuda a entender cosas más complejas como las operaciones con ficheros, qué es un registro, cómo se leen y escriben en fichero primero de forma secuencial y luego de forma aleatoria, qué son los árboles B y cómo funciona, la programación recursiva, etc, etc...
Una vez dominado todo eso, es cuando puedes empezar con la POO entendiendo mucho mejor cómo funcionan las cosas.
El que diga que todo lo aprendido con Pascal no vale de nada, es que no aprendió nada y no sabe cómo funcionan las cosas. Es incapaz de entender que todo lo que subyace debajo de estos nuevos y tan molones lenguajes 'que son mejores' usan todos esos conceptos.
TeLiXj
Si que se sigue utilizando aunque no sea al mismo nivel ni de lejos que otros.
Yo no sabía mucho más de lo que nos enseñaron en la carrera, pero tengo una web sobre el juego UltraStar (parecido al SingStar pero para PC) que está hecho con Object Pascal y me propuse mejorarlo. El código era (es) una basura y pero me divierte corregir errores y añadir alguna nueva funcionalidad.
Si tenéis curiosidad lo podéis ver en https://github.com/ultrastares/ultrastar-worldparty. Se puede compilar simplemente instalando el FreePascal y un editor como el VSCode.
DarkDudae
Pascal sigue muy vivo en la IDE de RAD Studio, permitiendo con un único código, generar binarios para casi cualquier sistema operativo (incluyendo móviles) e incluso web. Yo es el que más uso.
mantuano
Parece que desde Pascal no ha habido desarrollo, y todo el mundo se pasó a los lenguajes tipo C, C++, C#, ...
No se habla de los desarrollos por el propio Wirth: Modula-2, Oberon, y sobre estos, Modula-3 - este si que es multiparadigma, muy seguro y fácil de aprender como lenguaje, y sencillo (relativamente, comparado con C++) - desarrollado con la bendición del propio Wirth, y que como los Algol - 60, y 68, no alcanzó la proyección que el C patrocinado por ATT-unix, o IBM, entonces los gigantes tecnológicos, y ahora en otros campos.
pedroweberchatanuga
Por el 94 comencé con pascal, usando turbopascal , descubrí turbovision, que era con lo que estaba hecho el IDE de turbopascal, y si, experimentamos con el bastante, comprando esas revistas que traían librerías para poder poner en modo grafico a 256 colores y hacer programas desde ahí.
Después de eso, fue experimentar con las interrupciones del sistema operativo, como video (modo texto y modo grafico), y luego las del ratón :) , hacíamos nuestras matrices con las figuras del cursor (son 2, una la figura y la otra la sombra), ya con eso, continuamos haciendo pantallas en modo grafico, con menús, cajas de dialogo al mero estilo de windows 3.1 ,y con soporte de ratón que movía dichas cajas de dialogo.
Obviamente lo siguiente fue hacer nuestras propias librerías, y utilizarlas para los proyectos que nos encargaban, hasta que llegamos a bases de datos donde vimos Clipper y andabamos buscando el FiveWin, y pasamos a C/C++ donde solo volvimos a replicar lo aprendido en Pascal sin mucho esfuerzo ya.
:)
quiquedc
Aprendí Pascal en 1° de carrera allá por los años 80. Y lo que me enseñaban era programación estructurada. Con Smalltalk aprendí programación orientada a objetos y con Lisp, programación lógica. El resto (habré programado en más de 30 lenguajes distintos a lo largo de mi vida, algunos ad-hoc) los aprendí como versiones del tipo de programación.
Para los que dicen que te tienen que enseñar un lenguaje que se use solo dos cosas:
1. Es muy posible que jamás lo utilices profesionalmente y/o se quede obsoleto
2. En la autoescuela te enseñan a conducir. Cuando cambias de coche, cambian los detalles (situación del limpia, número de marchas o si es automático, etc). Pero lo importante se mantiene. Deberían pedir que les enseñen con el coche más vendido del momento.