Anecdotes of how we have made systems and programs, their mistakes and things learned. Real facts and opinions. Algorithms and Problems. Tips and Tricks.
I still remember when I was programming with GoTo. Programming without using it was not conceivable. Until the revolution started by Dijkstra with his note "Goto considered harmful" came to "structure" our minds for program development.
The progress made with "Structured Programming" is incalculable, which allowed not only to increase the speed of having correct programs, but also to increase the number of people capable of programming.
At that time, "Top to Bottom Programming" and "Bottom to Top Programming" became fashionable, among others, when you are already an expert in the problem to be solved and it is well defined. In short, channels of thought that have given rise to current strategies such as "Agile" and others that already take into account the continuous satisfaction of the client with the continuous improvements.
But what about paradoxical thinking? What about unfettered thinking? And the pure intuition of how to solve a problem? All these ways that the human mind uses are undermined, at least in Programming, by the Revolution caused by not using GoTo.
And I do not mean that there is no free thought and intuition when programming in languages such as Java or C#, which there is, but I mean the freedom that the programmer has who programs not even using assembly or "machine" language, that is to say, coding by hand, or at least in part by hand, touching very low all the potential of the processor (s) you have to be able to use them. Such is the case of the so-called "Super Computers" of each era, which have always or almost always been characterized by a high parallelism in their design and architecture, with few "advanced" programming tools due to the very nature of the need to the creation of hardware capable of solving concrete problems, such as models of the universe, of organic molecules and so on, which leaves little time to be able to specify high-level languages that exploit them properly.
At least I occasionally miss the freedom that GoTo caused.
Octavio Báez Hidalgo.