Natural Langauge is not and will never be the future of coding

I have an outline for an hour-long rant about how "plain English" is not and never will be the future of programming. Any suggestions on the right venue for such a talk?

— Steve Krouse (@stevekrouse) March 30, 2019

As the future of coding guy, I get some strange ideas my way: ex ex ex

But the craziest is also one of the most common: isnt the future of coding just talking to the computer and telling it what you want?

At first blush, this might not seem so crazy. And if you’re someone who doesn’t think this is crazy yet, don’t worry. You’re in the majority. I used to think this too…

AI seems to keep improving so if we extrapolate… Show Google ai booking appointment.

But let’s remember that we’re still here (audio of obvious misundstanding audio clip) so voice programming would be a lot of “no, a button!”, “a picture of a mutton?”

Ok, ok voice is a ways off, so a few years ago it was all about chatbots. Chatbots are the future of programming. “Make me an app where the….” long wait. like this? Again no.

The whole point of formal languages is that they are precise, concise, and suited to their domain. Math in English vs formula. Music in English vs notation. Sowing notation. Baseball notation. Accounting notation. Even letter and reading!

One of the key principles us PL designers try to achieve is liveness which is quick feedback. Plain English is way to slow for that compared with a formal language or GUI interface. Latency.

A conversation is makerd by taking turns and waiting for responses. Long running queierws and dialogue boxes are conversation. Actually an antipattern.

Using voice to control a computer is a disability accessibly case. Mouse or fingers are better.

Also bandwidth, which is about the compression. How much we can get across precisely with few words.

Why does nobody say the future of painting will be coveersational? As Bret Victor lies to say, clearly, van goughs ideal interface would’ve been, ok so add some stars in the sky. Ok now add some swirls and make it impressionistic. SOURCE

Clearly your human hand and a physical paint brush and paints is a much lower latency, higher bandwidth device for visual communication than your voice. That’s why the future of visual art tools look like this: drawing pad, ipad and not like this: girl talking to robot.

All pro artist tools map very closely to their domain: vlad’s image.

That is except programming. Which is still this formal language thing. So maybe that’s where people’s misunderstanding comes from. We go from binary to assembly to Fortran to C to Python. English must be next!

Of course This jump is a whole lot bigger than it seems. Python is still a formal language, but just with friendly syntax. You can’t write Y and have it still work.

Maybe the misunderstanding comes from non programmer’s interface to programming. Some comic, maybe Dilbert, of a boss giving orders to an engineer.

Maybe you work with a dev team in Russia and you just send them mockups and emails and they send you back code, and you interate with them. Isn’t that conversational?

Ok, here you got me. That truly is one realistic model of how the future of programming could be conversational…. Strong AI.

The abroad dev team Turing test. Once a computer can maqurade as your dev team in Russia without you noticing it’s a computer, I guess that’s programming by conversation.

Even if you do that now, it’s approximating it in the same way Uber approximates self driving cars. Modulo the small talk. Every designer and PM currently programs via conversation. With Is.

But of course we don’t actually call this programming. If you hire a painter and ask him to make it impressionistic, you’re not a modern day van gough.

That’s not to say that AI has no place in the craft person’s tool belt. The feild of intelligence augmentation… Grab stuff from that essay.

In fact the reverse has happened conversation is so low bandwidth that computers have mastered conversation, not conversation mastering computers. Google inbox.

Recap, while programming in plain English may seem like a good idea. It’s actually very low latency, low bandwidth, computers are nowhere near advanced enough for it, but ultimately it’s not the right medium of expression for programming.

A little to the left. To the left again. A little more. Ok change lane to the right. Hard right, hard right!! Clearly no. We want a steering wheel for all these micro interactions.

What about voice controlled cars like this “take me home, Elon.” That’s not a voice controlled car. That’s a self driving car with a miserable interface. “taking you to Elon’s home.” Not again. Which is why we don’t even use voice with our human Ubers. We use the app’s map interface. Because it’s the right medium for specifying location.

So what is plain English good for? Small talk with all the people that will eventually be replaced with proper interfaces. Oh and mealtimes conversations with friends and family. Not for programming. Not now. Not ever.

If you have crazy ideas for the future of programming, I organize this online community, meetups around the world, and have this podcast. Please join in with all your whacky ideas. Except this one.

Todo