Anécdotas de cómo hemos hecho sistemas y programas, sus errores y lecciones aprendidas. Opiniones. Algoritmos y Problemas. Sugerencias y Trucos.

Todavía me acuerdo cuando programaba con GoTo. No se concebía el programar sin utilizarlo. Hasta que la revolución iniciada por Dijkstra con su nota "Goto considered harmful" vino a "estructurarnos" la mente para el desarrollo de programas.

Es incalculable los avances logrados con la "Programación Estructurada" la que permitió no solo aumentar la velocidad de tener programas correctos, sino además aumentar la cantidad de personas capaces de programar.

Se pusieron entonces de moda entre otras la "Programación de Arriba a Abajo" y la "Programación de Abajo a Arriba" cuando ya se es experto en el problema a resolver y éste está bien definido. En definitiva, cauces de pensamiento que han dado lugar a las actuales estrategias como "Agile" y otras que ya tienen en cuenta la continua satisfacción del cliente con las continuas mejoras.

Pero ¿Y el pensamiento paradójico?, ¿Y el pensamiento libre de trabas?, ¿Y la pura intuición de cómo resolver un problema? Todas estas formas que utiliza la mente humana se ven menoscabadas, al menos en Programación, por la Revolución provocada por no usar GoTo.

Y no me refiero a que no haya pensamiento libre e intuición al programar en lenguajes como Java o C#, que lo hay, sino que me refiero a la libertad que tiene el programador que programa ni tan siquiera usando lenguaje ensamblador o "de máquina", es decir codificando a mano, o por lo menos en parte a mano, tocando muy por lo bajo toda la potencialidad del o de los procesadores que tenga para poderlos usar. Tal es el caso de las llamadas "Super Computadoras" de cada época, las que siempre o casi siempre se han caracterizado por un alto paralelismo en su diseño y arquitectura, con pocas herramientas "avanzadas" de programación por la misma naturaleza de la necesidad de la creación de hardware capaz de resolver problemas concretos, como modelos del universo, de moléculas orgánicas y demás, lo que deja poco tiempo para poder concretar lenguajes de alto nivel que las exploten convenientemente.

Al menos yo de vez en cuando extraño esa libertad que provocaba el utilizar GoTo.

Octavio Báez Hidalgo.