“Computers are like Old Testament gods; lots of rules and no mercy”, once wrote Joseph Campbell. I was reminded of this saying, earlier this week at work. I’d been struggling with one of our homebrewed codes. Part of my problem was that I was trying to use the code for something that it had not been designed for, but through persistence and trickery, I was able to bend it to my will, almost. On the final step, when I asked it to output my files, it would invariably and immediately crash. I struggled with this for the better part of two days. Finally, I called in the cavalry and within a few minutes the problem was fixed. Allow me to geek-out here for a moment. This software had originally been developed to run on UNIX, where file names are case-sensitive. It had been ported to and I was running it on Windows, where file names are not case-sensitive. My file name was lower case, except for the suffix, which was upper case. Making the file name all lower case fixed the problem. Some vestigial scrap of code had not kept up with the changing times, gotten confused and brought the whole house down upon it. It was all so perfectly clear, in hindsight, but debugging always is.
I have been debugging software for 45 years now or most of my life. I started in high school, studied it in college and have worked in software ever since. In high school we would record our programs on one-inch wide green perforated paper tape. When not in use, we would roll up our paper tapes and store them in repurposed 35mm film canisters. The more geeky members of my cadre fashioned Batman like utility belts and wore their software around their waist and then paraded around the school, without the benefit of any secret identity. From paper tape, I graduated to punch cards and from there to magnetic tape, CDs and now the Cloud. I used to code software all day long, but now not so much. I have learned that when you work for a company that uses software to make its products, you are more handsomely rewarded for using software to make that stuff than for writing the software in the first place. It happens that some of the files that I was able to extract was some source code that I’ll now be able to use to make more stuff.
Steve Jobs once said, “Computers are like a bicycle for the mind.” This was an apt analogy when he said it in 1990. An athlete can travel further and faster on a bike than on foot, like a person with a computer can multiply their productivity. Still, this is all hard work, requires skill and is not for everyone. In 1990, the Internet was little more than a gleam in Al Gore’s eye. Home computers were still rare and expensive. I didn’t own one then and in 1990 my relationship with computing hadn’t even half begun. Fast-forward to today, where everybody has a hand-brain in their pocket that is way more capable and powerful than the rooms full of mainframes that I had begun using many years ago. In my life, computers have enjoyed a transformative revolution. I can only wonder where in the future, we and our creature will go next.