When I was young, my dad bought a TRS-80 compatible computer called a Video Genie. It boasted 16k of RAM, 128×48 monochrome graphics and a 64×16 text display, all powered by a Z80 CPU speeding along at a little under 2MHz. In a way, the name of that computer is what inspired this piece, but ultimately it’s not what this piece is about.
The parable of the genie
Consider this. You’ve just been to the Middle East and bought yourself an old oil lamp that looks strangely valuable. You bring it back home and, after paying import duty, decide to give it a bit of a clean. Then, to your surprise, as you rub the lamp, a genie pops out and offers to grant you a wish – whatever you tell them and they’ll do it for you.
“What, anything?” you ask.
“Yes, anything,” the genie replies. “You’re the boss. Make a wish and I’ll grant it for you. I can do anything you tell me.”
You think for a bit, and after some consideration, you decide that you’d like to be immortal.
“Ok, genie. I’ve made up my mind. I wish to live forever.”
The genie looks at you. “That’s easy enough,” it replies, “but have you thought this through properly? Is that what you really want?”
You think it’s a little odd that the genie, who has previously assured you that they can do anything, seems to be stalling. Perhaps the genie can’t fulfil your wish after all and is trying to get you to change your mind. Perhaps they were boasting about their abilities. So you decide to call their bluff.
“Yes, genie. I want to live forever!”
“No buts! That’s what I want. Make it happen!”
After some frantic muttering and waving of hands over what looks suspiciously like a laptop, the genie disappears in a puff of smoke. When the smoke clears, you see a small pill jar on the ground with a label that contains a single word in bold letters. “Immortality.”
With your heart beating strongly, you bend down and pick up the pill jar. Through the slightly tinted glass you see a large pill and a note with a lot of small print that you assume contains the usual warnings about side effects that no one ever bothers to read. You twist off the cap, pour yourself a glass of water and swallow the pill, throwing the jar and the note away.
As you swallow the pill, you feel a tingling inside and you’re certain that it has worked. You’re immortal!
At first, you feel great. You’re immortal. What could possibly go wrong? You live life to the full, enjoying yourself, knowing that it’s going to last forever. Then, about ten years later, you’re standing in front of the mirror and realize that you’re looking decidedly older and that you’re getting old just as quickly as all of your friends.
You conclude that the genie was a fraud, or a practical joke by one of your friends, just as you’d suspected all along.
Many, many years later, you’re celebrating your 100th birthday. You’ve had a good innings and you’re pleased to have reached such a milestone. “Well, I can’t complain,” you think to yourself. “That genie may well have been a fraud, but I’ve lived a long time.”
Then along comes 110. You’re feeling very frail and can’t really walk any more and your eyesight isn’t what it used to be.
Before you know it, you’re 120. Everything hurts. You have arthritis, you need a lot of help to get out of bed and you can barely see.
The years keep piling on, and before you know it, people are hailing the miracle of the oldest person in the world. You’re 150 years old. You feel rather alone because you’ve not only outlived your friends, but you’ve outlived most of their children too.
At some point, your nursing home is due to be demolished and you’re going to be moved to a new one. As the staff are going through your possessions to pack them for the move, one of them finds the old lamp and asks you about it. You ask if you can hold it.
When the lamp is in your hands, you rub it. Sure enough, the genie pops out and offers to grant you a wish. But then the genie blinks and rubs his eyes, seeming to recognise you.
“Oh…” he says. “Immortality, right? I nailed that one, didn’t I?” You’re not sure because of your failing eyesight and poor hearing, but you think that the genie looks and sounds rather pleased with itself.
“What!?!?” you splutter. “Immortality? You didn’t give me what I wanted! I wanted to live forever, to be young and vigorous – not like this!”
“I did try to warn you,” the genie replies. “I can do anything you tell me. You didn’t mention anything about staying young – you just specified immortality. That struck me as odd, and as you didn’t want to discuss it, I left you a note explaining exactly how the pill worked. Didn’t you see it? It was in the jar? You really should have read it.”
And that is programming in a nutshell. You, as a programmer, are in control of this ridiculously powerful genie that can perform millions or even billions of your commands every second. But it will only do exactly what you specify, so you need to be crystal clear about what you want. As a good programmer you know this, so you strive to be precise. But your customers and clients aren’t usually programmers. They’re from the real world, where words are malleable and have multiple meanings. Their “logic” and thought processes are meaningless to the genie.
Sometimes they’re meaningless to you too. After all, what do you know about the retail industry, for example? But if you don’t know about the industry in which you’re a programmer then you need to learn, because it’s your job to interpret for the genie.