A rather late sequel to a Noob’s Guide To Programming
Like all good stories, the plot must be let to unfold over time, but as you already know, every story must have a set of characters who make us laugh, tense, sad, generally, they make the story come to life: and like any other story, it needs to be set in a place, mythical or real.
Tower Of Babel
“Now the whole earth had one language and one speech.” — NKJV Genesis 11:1
This is not a sermon, it’s simply an analogy, so bear with me.
As told in the book of Genesis, people got ambitious and hatched a plan to make a name for themselves by building a tower that reached the heavens, lest they scatter into the four winds of the earth.
At that time, they all spoke one language, but as the story goes, God came down to inspect the city and the tower that the people had built and he was amazed:
Indeed the people are one and they all have one language, and this is what they begin to do; now nothing that they propose to do will be withheld from them.
So God decided to split their language, different groups started to speak different languages, and with that, they got scattered to the four winds of the earth.
The Tower of Babel, in a way, reminds us of the first universal programming language — punch cards, courtesy of folks like Herman Hollerith, the forerunner of IBM.
NASA’s Apollo space program back in the 1960’s used programs created with punch cards and then wired into the spaceship’s mainframe. The original document laying out the engineering requirements of the Apollo mission didn’t even mention the word software.
As mentioned in this article about the only female software engineer involved in the Apollo project:
Once the code was solid, it would be shipped off to a nearby Raytheon facility where a group of women, expert seamstresses known to the Apollo program as the “Little Old Ladies,” threaded copper wires through magnetic rings (a wire going through a core was a 1; a wire going around the core was a 0). Forget about RAM or disk drives; on Apollo, memory was literally hardwired and very nearly indestructible.
That was before Babel happened, it’s kind of nostalgic in the way that the expression hand-coding literally meant doing stuff by hand.
But time flew by, as it always does, and the concept of software emerged through several hackish languages that were iterated, split apart or completely thrown in the trash can of code, case in point is LOGO developed in 1968, and now resting in peace whilst C developed in 1978, is still alive but not kicking as hard.
When it comes to explaining things, to people or machines, the principle of Occam’s Razor always wins because it simply seeks out the best possible simple explanation, which will come in handy for us, at the crossroads of Babel.
Crossroads Of Babel
For a community to switch from speaking one language to a plethora of different languages, with each language having its own quirky rules of syntax and semantics, confusion is inevitable, a lot of it actually.
And this is the dilemma all coding noobs encounter, what programming language to learn and hopefully, grow with.
Much ink has been spilled over this topic, there are different schools of thought, heavily dependent on how many years the proponents have spent working with a particular programming language, if we were to dissect all arguments for or against a particular language, I would keep you here until kingdom come.
But thankfully, we were lucky enough to encounter Occam’s Razor.
According to a Harry Potter wiki site entry:
Parseltongue is the language of serpents and those who can converse with them.
For our case, to think and code in Python is to speak parseltongue — the most simple available explanation we can use to talk with machines in order to get stuff done.
From building a web blog to writing software for cool space missions, parseltongue will explain all that logic to a machine and still save you from tearing out all your hair in frustration. It’s beautiful art.
“But why parseltongue? Please explain it a little more to me like a four-year old!”
Alrighty, here we go, we chose to speak in parseltongue because it’s:
Stupid simple — easy as writing an English statement. Most Massive Open Online Course introduction to programming courses use Python as their language of choice.
The default programming language that comes pre-installed in every Linux distro, keep in mind that these distros are maintained by very smart programmers, who have seen it fit to bundle all their OS releases with a Python version — food for thought.
Versatile like a Swiss army knife, from creating basic stuff like a blog web app with Django to scientific computing with stacks like Pandas, Scipy et.al — making it less painful to transition from a coding Noob to a Zen of code.
Modular, so if you ever enjoyed playing Lego as a kid, you’ll find it easy to code in Python, all you have to do is take a pick of any library that suits your problem space, and plug it into your system architecture.
But That's Too Simple
Remember, we have chosen to keep things as simple as possible in explaining why we prefer parseltongue over other languages — we could write an academic paper on why Python is the way to go when faced with the dilemma at Babel’s crossroads — but because we are committed to the principle of Occam’s Razor, we have kept it very simple.
As you might already know my dear reader, simplicity than doesn’t wholly sacrifice the true spirit of an explanation — for this case, our need to explain to both simple and complex machines what we want to get done — is always the better choice.
That’s why I speak parseltongue, of course, this doesn’t restrict you from exploring other languages spoken at the crossroads of Babel…but for starters, let’s start with a simple language: let’s speak parseltongue.