The Future Of Programming Is May 07, 2009

Not what you think it will be.

I read some article on Reddit (actually the comments) where some guest lecturer spoke to a group and suggested that the future of programming is domain specific languages, and that they should focus on this.

Today when people tell me what the future of programming is, I run away. Every since my first programming job back in 1981, I've heard a million people make these kinds of predictions. The first I remember was "The Yourdon Look", some classes we were forced to take on Data Flow Diagrams or something like it. Over the years there have been so many I've lost interest in even counting them.

Object-Oriented programming seemed a revolution, but it didn't change how we programmed as much as just made some things easier, some things harder. Even then it took a whole generation to convert even a portion of programmers, and now it sure appears to be far less of a panacea than was proclaimed in the early days. My first brush with OOP was the Smalltalk edition of Byte, and later I "invented" some C OO extensions for Deltagraph (which are embarrassing today but helped a little). It wasn't a revolution, just an improvement. Or not.

So who predicted the internet, the web? The biggest change in programming ever as far as I know didn't exist 15 years ago (at least not to most people). Not even the high and might (like Bill Gates) saw the change coming.

I was in Silicon Valley working for Remedy when Netscape went public. Then I worked at Apple for a few months before coming back to Texas. I still didn't realize the web was going to change so much. D'oh, I missed the whole Dot Com gold rush. But no one realized in 1995 that the web would touch and affect virtually everything we do, not to mention all the crap we would have to learn!

Who at the time predicted that the other big change would dominate things - the whole open source movement. If someone had told me in 1995 that 15 years later one could run an entire large international business and spend $0 on software I would have laughed. Yet today not only because of the first pioneers (like Linux) but because the internet existed to support it. In the 80's I read paper magazines to find out what was going on in the programming world (like Byte). With the advent of the internet, it became possible to communicate with people all over the world, discuss and collaborate on software development, and distribute the work to everyone.

Not one person that I remember ever predicted this either.

If someone had told me 5 years ago that in 9 months this year 1 Billion Apps would be downloaded to a phone I would have laughed too. Phones were for calling and had crappy built in apps no one really used. Who called this one? Yes, its a bad pun.

So pardon me if I regard all predictions of the future of programming with an ocean of salt. I've heard for decades seemingly that programming was almost dead and we would no longer be needed like the Luddites of old. Anyone could learn to program, it was no longer a tech function, just push some buttons, drag a few icons, and presto! and application pops out.

Maybe someday we will be obsolete. But it won't be something we predict. The future is not some slightly altered version of what you see today. It's going to be different. Whatever is the new big deal won't come from a predictable path, a consensus opinion, a committee. It might be a Steve Jobs type person with an insane idea and the people to make it work. It might be some researcher with a simple idea (Tim Berners-Lee). Heck it might be aliens for all we know.

The biggest mistake people who predict the future make is assuming it will be just like the present, only more futuristic. In ancient times prophets usually got stoned if they make predictions that didn't come true, which tended to limit the prediction business. Today, its much easier, you can write a book, give a lecture, or more likely, post to a blog. No one will stone you.

No matter what anyone says, the future of programming is ... something.

If I had to make a prediction (sans stoning) I would say we will still be writing some kind of code for a long time until the day comes when the programmer will be a robot, who will then write the code for us. Of course someone wrote the code for the robot, and if thats the programmer who is going to be replaced, I imagine there will be bugs!