The Future Is Always Different Than You Can ImagineOctober 01, 2017
Thirty-six years ago this week I started working as a programmer. My first job was working at a defense contractor. I had no experience or education in programming other than some high school classes (we had a teletype machine connected to some mainframe somewhere) and my own self taught ability in BASIC on an Apple II+.
Imagine for a moment I had today a time machine and could go back to that first day to tell myself what my life as programmer would be in 2017 (ignoring the obvious time travel paradoxes). I can guarantee I would have been amazed, or possibly unbelieving that a world like we have today could ever exist. The differences between then and now would be almost unexplainable to that young version of myself.
Take another step and imagine that version of myself took a time machine back another 36 years to visit my dad. Turns out that would be a month after the end of World War II. My dad barely survived the war (and thus in a way I did too). He would not have understood the concept of a computer, had likely never seen a television and maybe would have been amazed that the world was no longer at war. But 1981 would not have seemed all that different to what he knew otherwise. What changed between these two 36 year periods? The pace of change changed.
To really know how far the world has changed you almost have to have been there with me on that first day and experienced how the changes happened. Almost everything we know today in programming, plus of course in the world itself, has radically changed in the ensuing years.
When I started on Monday I had absolutely no clue what a real programmer did. There was of course no internet, no web, no books, few computer related magazines, basically no place I could even look up a bare idea. I had little confidence, I assumed that this might be too difficult for me to do, I had no concept of programming as a career. There were a couple of college friends who worked as a programmer but what little they told me about didn't help much.
On that first day I wore a suit to work. Everyone did. No one had a computer on their desk. We had a bullpen with terminals (both IBM and Harris) that you signed up for time on and thus were shared resources. On that first day I met two “old guys” who did batch programming on the IBM, they worked on multiple projects at a time as they got only one compile-run cycle a day. They had started programming, of a sort, in the late 1950s on some kind of analog computer involving plugging in wires. They seemed so old and wise. They were much younger than I am now.
So what would I have thought of this much older me explaining the future?
I would have recognized my current employer, but that it needed programmers at all would have been surprising. That I would be writing code on phones would have been a shocker. How do you write code for a phone? In 1981 phones were hardly changed from 36 years earlier, black with a wire. That something I could hold in my hand had 3GB of memory, wireless networking, video interface and worked almost anywhere in the world would have made no sense. The IBM I was about to train on had 16MB of RAM and was approximately the size of a small house.
That this phone could contact anyone in the world by phone or retrieve information from people you didn’t even know, and that anyone could write programs that did all of this would have been hard to believe. In 1981 networking was something mainframes did or you used a modem. There were no cell phones at all, no internet, even the web was 10 years away, and I had no concept of email either. In 1984 my boss and I had an email account on a local bulletin board but no one to email but ourselves.
A thousand or so programming languages available would have seemed inconceivable, as I was told I would be writing everything in Fortran. There were few choices like assembly language (I had taught myself a couple, 6502 and Z80) but generally everything was written in Fortran there. Later I would learn Jovial as the Air Force would be using that until Ada was fully available but on my first day I had no idea.
That there were millions of people writing code for free and making it available to anyone to use would have seem shocking as well. Free? Software? Until my future self could explain what an internet was I would have thought you got tapes or floppies or something. The whole idea of people giving work away for nothing would have seemed insane. That you could generally use it in your own applications would have had no real analog to me.
A world wide web, something that ran on this internet and allowed anyone to post anything that anyone could read, and that programming info was available in staggering amounts, and that I could order virtually anything and have it delivered in an hour or a day or so without leaving my couch would have seem science fiction. Even mail order back then was not exactly swift or easy to do. Being able to stand in line, download an app, and run it without moving would have been just as strange, especially when I said people wrote millions of these apps including me.
On that first day I assumed people who ran companies were geniuses who never made errors and I could never be one of those. But it took only a couple years to find out how dumb ours were, and that I would start a company in 1985 and another in 1987 lasting until 1994 would not have been anything I assumed I could do. That today the biggest issue is that people can hack into companies and steal everything including all of your financial information was not something I would have ever thought of. Back then security was a lock or a guard. Stealing millions of people’s information wasn’t scalable then at all.
In 1981 you really had little idea of what anyone did in programming outside of your job, no blogs, no Google, nothing but the random magazine or if you were lucky, a library with some journals. What little I knew was by trial and error. I would have been amazed to learn how much is available today, yet people still screw up royally all the time. The problem today is too much information and it’s too difficult to learn what you need and adapt it but filter out all the stuff you don’t need.
I would have been scared to learn how much I needed to learn all the time, at an ever increasing pace, to stay ahead of the changes. In 1981 change happened at an almost imperceptible pace. On my first day I had never even considered that this industry (if I even thought of it as such) would change, I assumed it was just that I was dumb and didn’t know much. Finding out that knowledge in programming is a moving target, an accelerating one, and that if I didn’t keep up I’d get run over would have seemed frightening. Maybe if I had know how much I had to change over the years I would have taken that offer to work on a PhD in Chemistry despite not wanting to be in school yet another 7 years.
Thinking about it now I am not sure I could explain the “Cloud” to that younger self at all. Software ran on computers you could see, not some imaginary place that did so much for you in often mysterious ways. Even buying software was a mystery, I think I bought a few things in a computer store before then. Of course shipping Trapeze in 1987 I learned all about it, but in 1981 that was still 6 years away. That one could write software, upload it to an App Store and have it available to the entire planet (assuming anyone would see it) was real science fiction.
I would of course have traveled back then in my normal “uniform”: jeans and a golf shirt and some comfy footwear. To my suited self that would have seem unbelievable yet it took only a couple months before I canned the jacket and then the tie.
That world I started my career in is long gone. I can still remember before all the things we have and use today existed and what I thought about them when they appeared. Today everything was science fiction to that first day programmer that I was.
The future is never what you imagined it to be, yet while massive changes happened before 1981, the pace is what has accelerated to an insane level today. Last year’s big deal is abandoned, there are uncountable ways to do everything, you can’t even grasp more than tiny amount of what the world knows. If this pace continues (if our presence on this planet continues) the world of 36 years in the future, 2053, is unlikely to be anything like today. I would say that if that world is more like today then we will be in serious trouble and our future is in doubt.
I know I won’t be programming any more in 2053 if I am alive I will be as old as Stan Lee is today. Given the enormous changes in the past 36 years I can’t even fathom how anyone will keep up. Will there even be programmers in 2053? I couldn’t tell you.
On that day in early October, 1981 the future of programming, much less the world, wasn’t clear at all, and if I gave any thought to it at all I probably assumed not much would happen. I would have been very wrong.
If I had the chance to tell myself on that first day something, what would I say (again assuming no paradoxes), other than the obvious buy Microsoft stock, would likely have been to never stop learning, though I think I figured that out on my own almost immediately. Maybe I would have told myself than when the time came to decide to run companies or be a programmer, give up the programming. My life would have been very different and of course there is no way to know what would have happened.
But there are no time machines and my life happened as it did. Today I have enormous responsibility and a great track record of delivering applications that work all the time so I must have done all right without the future knowledge. I do miss running the company but I don’t see how that would ever happen now given my total lack of useful contacts. But I still enjoy delivering great products that work.
If any of you have a working time machine I’d love to borrow it. Scaring the crap out of myself in 1981 would be fun. Or maybe I’d take a peek at 2053 just to see where we are going and scare myself.