The Future Is Hard To See

When I started my first programming job in 1981 I didn't really think much about the future. Though I bought an Apple II+ back in 1979 and had a friend who worked on the original TRS-80, both of which represented a whole new world in programming, it didn't really make me realize how much the industry would change in the future.

If you told me back then that today I would be writing apps for mobile devices and phones with more horsepower than almost any computer in the world at the time I'd thought you were nuts.

If you told me there would exist more than 500 actual non-assembly languages you could code in I'd thought you were crazy.

Heck if you told me I'd still be programming 32 years later I'd laughed in your face.

If you told me I could write articles on anything and have people read it in 188 different countries (this year) without costing me anything I would have considered you insane.

If you told me the billions of people would be connected electronically to each other, and that I could buy anything from anywhere at any time and have it appear at my house in a day or a few days I might have called the local asylum hinting they had a breakout.

If you mentioned that the US Government could record everything I would do someday I might have wondered how this was possible but it might not have surprised me much. Some things are easy to see.

Even calling people on the phone no matter where we are both located would have been bizarre, much less that I could play games and order stuff and write my own apps on the same device would have seemed impossible to me.

Basically the world of today was completely unpredicted when I started programming back then. Though I read a lot of science fiction as a kid I don't think even they got much of today right.

Given how little of today was obvious thirty years ago I assume that thirty years from now is probably still hidden from us today, at least in an obvious way. The biggest difference today of course is the internet giving everyone a wider audience to speculation and to upcoming trends. I think that's the biggest difference between the 1980's and today: it's so much easier to see what is happening and it be able to communicate all over the world, even if it makes it harder to interpret. Where I had to read paper magazines and newspapers or visit a library to find out what was happening I can sit anywhere and be informed.

The question is will the world of tomorrow be obvious enough despite the wide open communications to not be a surprise when it starts? After all a communications service (Twitter) built on 140 character messages didn't appear revolutionary when it came out in 2006 yet it's enabled whole countries to fall and connected people in ways not obvious at the start. When the iPhone first appeared many people didn't think much of it (I did) but it spawned a massive change in the world.

I even doubt that when Tim Berners-Lee first saw a web page on his NeXT Cube he could have predicted that this would change the world forever.

Even predicting programming trends is pretty hard, much less society as a whole. Of the languages on the TIOBE list I have worked in six of the top ten. Yet in 2006 Objective-C was probably not even in the top 200; who would have predicted it to jump to number 3? Is tomorrow's favorite language on any list yet?

I still remember my first exposure with Object-Oriented programming, the famous Byte magazine issue on Smalltalk, and how that changed so much in how I've programmed since then. Today however functional and hybrid languages seem to be gaining ground, though there are still an endless list of new programming languages of all types appearing every week I can't count them anymore. The pace of change is almost insane today, so the evolution of new approaches continues at a rate you can't base any predictions on for the future. As Yoda said "Difficult to see. Always in motion is the future."

Since I started in that first job, the holy grail of programming has always been to eliminate the need for programmers at all. I've seen this in every decade, and so far the only result is that programming seems to get harder not easier, much less be doable by non-programmers. Still, at some point in the future, I predict computers will be smart enough to not require specialized people to tell them what to do. When? Hell if I know, not anytime soon. But someday for sure.

I did not think too much about the future when I started in that first job but if you visited me from today in the time machine we still don't have I would not have believed anything you told me that was routine today other than I would still have a job, and I would still be writing code by hand.

I bet if you visited me from 30 years in the future and told me what was routine I probably wouldn't believe it either, and if you told me I would still have a job, and I would still be writing code by hand, I'd write a blog post about it and destroy the future.

So what will the next 30 years be like for programmers? We'll see it soon after it happens and not a moment before.