Comments on Technology and Ideas to be developed.
I have said on many occasions and in various audiences that what we call variables in Programming is what frontally separates Mathematics and its language from Programming and the problems it solves.
It is that it is well known that a mathematical variable is like a being without a name, which can be called X, Y, or Z interchangeably and the meaning of the mathematical formulas where it appears does not change. Also the mathematical variable is like a being without its own personality, like "X belongs to the interval [0,1)" but that ultimately only takes particular values when it is necessary to make, for example, the shape of the curve represented by this or that equation.
Ah! But the programming variable is the opposite. It has a name which must be correctly defined according to the problem to be solved, and it always has a particular content required by the algorithm where it appears as such.
And we fall into the disquisition of What is an Algorithm? Well, although Mathematics and Programming respond with what superficially seem different definitions, take for example the Turing Machine and the Algorithm executed by Microsoft Word, they are essentially the same question, only in two areas of convenience to the human being.
And that is where the Programming variable takes on top relevance, since all the mathematical heritage accumulated over centuries is of no use if a programmer decides to call a variable xYzCRk ...
And that is why the variable is important, because a Program must be made so that other people understand it, not only computers as such, since the source text of the program will be reviewed, increased, corrected, ultimately "maintained" by perhaps people who never knew the person (s) who originally programmed the aforementioned program.
It is as if in Mathematics each and every one of us had the freedom to choose the symbol to use to represent an integral equation. We can do it, but few would understand us, since the process of standardization of mathematical language has taken centuries and is firm enough in its principles to achieve universal understanding.
And here is another difference: Universal understanding of Mathematics versus Universal application and very practical of Programming. Comprehension versus Practice.
And in all this network of programs that sustains today's world so universally connected, including even the internet of things, the modest "variable" is the fundamental brick of the entire building. Without them there is no programming. In fact, every binary program that runs on today's processors, be it one or a cloud of millions, also uses variables.
Therefore: With Variables everything, without Variables nothing.
Octavio Báez Hidalgo.