Saturday, September 5, 2015

Variables and Constants

To begin from the basics, very simply put, a variable in mathematics is a letter that represents a number. In computer science, a variable is a placeholder with an identity that stores a value, and the value could be null too. As we learn more, we see that a mathematical variable can not only represent a number but also a vector, matrix and so on. Computer programmers, either by their own experience or by coming in touch with good guidelines1, know how to handle variables and create complex data structures like array of hashes out of them. As Linus Torvalds says, "Bad programmers worry about the code. Good programmers worry about data structures and their relationships."2 Now, this article isn't going to be some theoretical citations from mathematics or computer science but something probably different as you would shortly see.3

Variables Everywhere

Variables, of course, aren't just present as theories within the boundaries of books. When we drive a vehicle, variables flow in real-time - the speed of our vehicle, the proximity to other vehicles, the weather, fuel in the tank and so on. Variables are ubiquitous, omnipresent. We constantly solve equations in real-time involving multiple variables, like the bicycle messenger in the movie ‘Premium Rush’, trying to find ways to our destination. We might even have "Robocop helmets”4 in future, built similar to the aviation helmets and BMW cars, which help to assist solving these variables. Let's go from the roads to something higher, the Burj Khalifa5.
The massive amounts of raw material used, the strong desert winds, the soaring temperatures reaching 50°C, are just three of the very many variables that were addressed in evolution of Burj Khalifa. Let’s go still higher… up, up, and above… the Rosetta mission6. The first spacecraft to orbit a comet nucleus, the first controlled touchdown of a robotic lander on a comet’s surface, first in-situ analysis done on a comet and so on, Rosetta was the first in many aspects. Imagine that you are a trap shooter trying to shoot the clay disk projectile. You’ll have to extrapolate the motion of the disk and make sure you meet at the right point to break the projectile. Now imagine meeting an object moving at the rate of 12km/s separated by 24 million kilometers deep in space! Planning for a rendezvous that would happen about 11 years later, letting the system hibernate for about 3 years during flight, using planets as slingshots using gravity assist maneuvers7, a system that would not just fly far away and put also launch a subsystem... the number of variables involved is just mind-boggling! Variables in not just building the spacecraft in a “clean room” but also when we consider it from the project management perspective.

Equations Solved

Projects like Burj Khalifa and Rosetta obviously can be achieved only through collaboration of multiple teams working for hours round the clock. Now we have not one person with one equation but a whole bunch of people with their own equations. As different people perceive and understand the same thing differently8, different viewpoints are presented in the drawing board, brainstorming happens, and solutions emerge for the equations, though they might not always be the only solutions or the ideal solutions. So what we see as standing buildings and flying spacecrafts are actually are equations that were solved and variables understood. Now these form the templates, and guide those who travel down the same way. What existed as only thoughts and notions in the minds of few, became something that is tangible and this is possible because we, either knowingly or unknowingly, form equations and solve the variables involved.

Let Variables Exist

Einstein introduced the cosmological constant as an addition to his theory of general relativity to balance the equation of static universe, but then later had to admit that it was his “greatest blunder” when observations indicated that the expansion of the universe is accelerating. Not everything that you see or work upon needs to be equated, not every equation needs to be solved, not every variable needs to be understood. If everything can be laid out as equations and every variable figured out, we would be like automatons on an assembly line.
While artificial intelligence is helping us in ways unimaginable few decades back, it is still good not to parse everything. Even Stephen Hawking says that “Once humans develop artificial intelligence, it would take off on its own and re-design itself at an ever increasing rate. The development of full artificial intelligence could spell the end of the human race.”9 We wouldn’t want to let machines with superior computing power to solve all the variables which are better left unsolved.
The teams that work on various projects, while trying to solve equations to understand the variables, are composed of variables themselves. Each one in the team have their own skill sets and talents. We need to understand the variables in the task that we undertake and our own variables – our strengths and weaknesses – to achieve whatever we want to achieve. “Variety is the spice of life” and a corollary could be “Variables are the spice of life.”
So know your variables, understand them and enjoy life as it unfolds.

Notes and References

An article that sprung from a thought in an earlier article
1. The Practice of Programming (ISBN 0-201-61586-X) by Brian W. Kernighan and Rob Pike (http://books.google.co.in/books?id=to6M9_dbjosC&pg=PA1)
2. http://en.wikiquote.org/wiki/Linus_Torvalds
3. There is a great difference between "knowing what we say and saying what we know." I'm going to say what I know think. If you find any errors, feel free to point out ;-)
4. https://www.youtube.com/watch?v=VcRNVyfCE2U
5. http://en.wikipedia.org/wiki/Burj_Khalifa
6. http://en.wikipedia.org/wiki/Rosetta_(spacecraft)
7. http://sci.esa.int/where_is_rosetta/
8. http://en.wikipedia.org/wiki/Blind_men_and_an_elephant
http://www.einstein-online.info/elementary/specialRT/relativity_space_time
9. http://phys.org/news/2014-12-stephen-hawking-ai-humankind.html
http://phys.org/news/2014-12-artificial-intelligence-hawking-debate.html

I screwed up the HTML on this article but I am too lazy to fix it now :)

No comments: