The Future of Programming

I learned how to program on this Apple II over 30 years ago. Over that time period – as a first approximation – programming has stayed the same. Yes, I have learned new tools and new programming languages, but programming still amounts to typing a bunch of text into an editor in a syntax that’s generally easier to read for a machine than a human. That is about to change dramatically.

When I teach programming to novices I introduce it by saying: programming is just telling a machine what to do. You already know how to tell people what to do – you do it many times a day. Now you will learn how to do the same for machines. I then point out the ways in which computers are not like humans: first, that they are literal requiring a highly specific syntax and second, that they have fewer built-in capabilities than most humans.

Let’s start with the second part. The dream of easily reusable components is an old one in programming dating back to the emergence of object oriented programming in the 1960s (yes, that’s the 60s and thus half a century ago). I have a feeling some folks will want to get into a lengthy debate on how amazing some of those systems were. Smalltalk, anyone? But the truth is it never really worked. Not in a way that transformed programming.

Now though we are finding ourselves in 2016 and the components we were looking for have arrived in full force. They are called services. I am not talking about the current excitement around microservices, which is a gigantic headfake (*). What I mean are services such as Twilio for communications, Dwolla for payments, Clarifai for image recognition, Ziggeo for video recording and so on (disclosure: all examples are companies I am an investor in). These are all services that as a programmer let me do amazing things with just a few lines of code. It is because of services like that people can now build and launch something meaningful in the duration of a hackathon.

That act of assembling the components into a new whole though, still happens largely through exactly the kind of programming we have always done. But here too change is on the way. For instance, Zapier just announced much more powerful ways of combining existing services with minimal programming.

While that’s a huge step forward, we won’t stop there. We have also had recent breakthroughs in understanding natural language and in capturing it directly from speech. This has given us services such as Apple’s Siri, Google’s Now, Microsoft’s Cortana and Amazon’s Echo and for messaging service the great bot rush of 2016.

So finally, after all these years, programming will change. We will all be able to program just by saying things. “When a customer’s bill payment is overdue by more than 60 days send a text message asking for a video recording explaining the reason for the delay.” Don’t think we will get there? Well, for quite some time it looked like this wouldn’t happen either:

As an investor I therefore continue to be excited about component services that are required to make this future happen as well as the glue between them. We are not quite there, but the future in which we are all programmers is arriving.

* The excitement about microservices and, for that matter, containers is a headfake because very few people need to build services. Most people will script, assemble or otherwise consume services.

Loading...
highlight
Collect this post to permanently own it.
Continuations logo
Subscribe to Continuations and never miss a post.
#programming#progress#services