By Mike Gold, A retired entrepreneur living the dream in the Pacific Northwest.
A fellow entrepreneur friend of mine, who founded two companies in the same industry as the one I worked in (providing computer systems for publishing companies), used to say this all the time; SMOPS - Simply a matter of programming.
Of course, he was talking tongue-in-cheek. Why? Because programming is omnipresent. And it is not simple at all. In fact, being a programmer today is the guaranteed best way to insure that you will never be unemployed.
So my friend was trying to reduce a very complex subject to a “buzz expression.” If only this were true. Let’s start with a simple question. How many programming languages are there? As you can see from the previous link, the number is in the hundreds.
Each language was developed for a specific purpose. Just for developing sites on the Internet, there are a couple dozen languages. Probably the one you all are most familiar with is HTML, which stands for hypertext markup language. That is the “marker” which is principally used to identify an address, which contains whatever web page you are looking at.
Now I don’t mean to bore you with too many technical details. All that’s important for this column is that in order to program anything (from a smart device in your home or your car, to the most complex scientific analysis program) you must learn one of more of these languages.
What do almost all languages have in common? Logic. Programs describe in minute detail how a process or procedure works. Let’s take something very simple. Say a program that decides when to turn the lights on in your home. The first step is to identify the “resting state” of your lights. Are they off or on? Which lights – in which rooms? Then you have to define (in the chosen language) every minute step the “controller” which controls the lights has to do.
And in programming, for each step forward, you take several steps backwards. In this example, the programmer has to check to insure everything is part of the normal and routine process to turn on the lights. (Example – is the electricity on, are there special lights that require some sort of startup routine, and on and on.)
So you can see that what sounds like a simple task has many “branches” all of which must be controlled (addressed) by the program. Asking a programmer what is their productivity say in lines of code/hour is like asking a great painter how many brush strokes does it take to produce a masterpiece.
Some would take offense to such a question. It depends on many things from complexity of task to what physical devices have to be managed. And some programmers are true artists. That is, they may not “relate” to another person, as one would expect. Some programmers like to wear music headphones to allow them to concentrate – by obliterating all background noise. Others may require complete silence.
Last thing I want to describe is the growing complexity of our modern world. More and more simple tasks that once were controlled by discrete hardware (in other words, not computer controlled) are now run by computer code.
The latest technology coming along is the so-called “Internet of Things.” In this scenario of our developing world, every device in your home will be computer controlled and will “talk to each other.” And behind all of this are programmers, who by the way, screw up frequently. That is known as a “bug” wherein the programmer failed to anticipate something unexpected.
One of my favorite examples of this is the old “Laugh In” TV show. A man comes into a room to be interviewed by a computer. He sits down and the computer says: “What is your name?”
He looks up from his newspaper and says: “What?”
The computer says: “What is your first name Mr. What?”
He replies “Not What, Frank.”
The computer replies “Mr. Not What What” and the interview disintegrates from there.
I still laugh until I cry whenever I see this film clip. It just brilliantly shows how a poorly written program is really quite useless.
I leave you with a clip from the show showing a human (Goldie Hawn) trying to explain something simple, time zones. As you watch this, just imagine the logic of her brain applied to a computer program and you’ll understand why there are computer bugs.