Impact of Software Programming Languages on Human Behavior – A story
- Manoj Philip Mathen
Subu (Subramanian), a South Indian Computer programmer in his late thirties was visiting his grandparents at their village. He met lot many people, child hood friends, cousins…the family reunion was fun... The elders were talking and Subu was busy staring at a leaf venation (way in which veins are arranged on a leaf) on a plant right at the courtyard. There seems to be a pattern he thought….it’s a mathematical series....... A coarse sounding statement interrupted his thoughts. It was his grandpa’s. The children these days don’t talk much and are always engaged in some deep thinking. Either they don’t have that family love & bonding or they don’t express it!!
Subu’s parents had relocated to a nearby city 2 decades ago. Subu & his sister grew up in the city. Life at City was very much different from that at his village, Subu had faded memories of his childhood life at village. His family had relocated when he was 10 years old.
Subu recollected his grandpa’s words…..”children don’t express love...” He thought about expressions….He thought about the differences between Natural Languages & Formal languages and how important each is. Natural languages (English, Tamil – a popular south Indian language, French etc.) are languages that people speak. These languages evolved over a period of time. These languages are expressive, they can be used to convey emotions – an integral part of human communications. Formal languages (mathematical notations, programming languages) on the other hand are designed by people for specific purposes. They are not that expressive, they do what they are expected to, period. The several symbols in Calculus denote the relationships among numbers and symbols. Programming languages were designed for specific purposes. Subu had mastered many of them in the last 2 decades. C, Java & Python – most of them have very strict rules. Any deviations in the syntax will not be accepted.
He further thought… Natural languages (for example, Tamil) could be ambiguous, it allows redundant statements. It is beautiful though. End users can repeat, rephrase and re-emphasize at will. His Grandpa does that. His grandma does that and oh yes, his parents do that as well. It adds meaning and context. It helps in understanding the implicit. But the languages that he was more familiar with – C, Java & Python- they are not that expressive nor ambiguous. Redundant code is never rewarded by any compiler or interpreter (Software programs that translate high level languages to Machine-understandable formats). Some called the redundant statements in a software program as dead code. Natural languages have rich idioms and phrases. C compilers don’t expect idioms to understand the statements. Little things like spelling errors, syntax errors can mean disaster in a LIVE software program. Natural languages are more tolerant. C statements are straight forward, to the point. No beating around. It does its job and it exits. Am I more like a compiler…. Subu wondered…
No Input detected. Beep ..Beep.. Subu’s Personal Digital Assistant on the phone was trying to wake him up, he needs to get ready to be able to catch the evening flight on time – his Digital assistant reminded him!