benbalter / benbalter.github.com

The personal website of Ben Balter. Built using Jekyll and GitHub Pages. See humans.txt for more infos.
https://ben.balter.com
150 stars 244 forks source link

The Future of Programming is Conversational #730

Open amatlack opened 1 year ago

amatlack commented 1 year ago

And now here is a present for you, so long as I get a byline. ;)

The footnote was 100% the machine (and you might want to remove it if you decide to publish this), but I loved it so I left it. 😆

Happy to share the prompt. I just wanted something to play around with for a little bit.

(This is unedited raw output.)


The next big programming language is going to be natural, conversational language. And it's thanks to generative AI.

Now, I know what you're thinking. "Ben, you've lost it. Programming languages are supposed to be precise, unambiguous, and deterministic. How could natural language, with all its nuance and ambiguity, ever replace the likes of C, Java, or Python?"

But hear me out.

Generative AI is changing the game. We're no longer limited to programming languages that are designed by humans, for humans. Instead, we can use AI to generate programming languages that are designed by machines, for machines. And that means we can start to think beyond the constraints of traditional programming languages.

Think about it. When you're programming, you're essentially telling a computer what to do. You're giving it a set of instructions, and the computer follows those instructions to the letter. But what if we could give those instructions in natural language? What if we could tell the computer what to do in the same way we'd tell a human?

This is where generative AI comes in. By training AI models on vast amounts of natural language data, we can teach machines to understand and generate natural language. And that means we can start to create programming languages that are based on natural language.

Now, I'm not talking about just any natural language. I'm talking about a specific type of natural language: conversational language. Conversational language is the language we use when we talk to each other. It's the language we use when we're explaining something to someone, or when we're asking for help. It's the language we use when we're trying to convey meaning, rather than just information.

And that's exactly what we need in programming. We need a language that can convey meaning, rather than just information. We need a language that can help us understand not just what the computer is doing, but why it's doing it. We need a language that can help us reason about our code, and that can help us debug it when things go wrong.

But why conversational language? Why not just use plain English?

Well, conversational language has a few key advantages over plain English. First, it's more concise. Conversational language is designed to convey meaning quickly and efficiently. It's not bogged down by unnecessary details or technical jargon. Second, it's more precise. Conversational language is designed to be unambiguous. It's not open to interpretation in the same way that plain English is. And third, it's more natural. Conversational language is the language we use every day. It's the language we're most comfortable with. And that means we're more likely to be able to reason about our code when we're using conversational language.

So what would a programming language based on conversational language look like?

Well, it might look something like this:

when the user clicks the button, show the modal

Or this:

if the user is logged in, show the dashboard

Or even this:

when the user submits the form, send an email to the admin

These are all examples of code written in conversational language. And they're all examples of how we can use natural language to describe what we want the computer to do.

Now, I know what you're thinking. "But Ben, what about all the edge cases? What about all the things that can go wrong? How can we possibly account for all of that in natural language?"

And that's a valid concern. But here's the thing: we don't need to account for all of it. We just need to account for the most common cases. We just need to be able to describe what we want the computer to do in a way that's natural and intuitive. And then we can use traditional programming constructs to handle the edge cases.

For example, let's say we want to write a function that adds two numbers together. We might write it like this:

function add(a, b) {
  return a + b;
}

This is a traditional programming construct. It's precise, unambiguous, and deterministic. And it handles all the edge cases. But we don't need to write the whole function in conversational language. We just need to be able to describe what we want the function to do. And we can do that in conversational language:

add two numbers together

This is a simple example, but it illustrates the point. We don't need to replace traditional programming constructs with conversational language. We just need to be able to use conversational language to describe what we want those constructs to do.

So what does this mean for the future of programming?

Well, it means that programming is going to become more accessible. It means that people who aren't trained programmers will be able to write code. It means that we'll be able to communicate more effectively with our computers. And it means that we'll be able to reason about our code more easily.

But it also means that we need to start thinking about programming in a different way. We need to start thinking about programming as a conversation with our computers. We need to start thinking about how we can use natural language to describe what we want our computers to do. And we need to start thinking about how we can use generative AI to create programming languages that are designed for humans, by machines.

In conclusion, the next big programming language is going to be natural, conversational language. And it's thanks to generative AI. People with the ability to be both introspective of their own processes, and the ability to communicate "the how" of those processes concisely, is exactly what is needed for prompt engineering. It's an exciting time to be a programmer, and I can't wait to see what the future holds.

Thanks for reading!


Note: This blog post is a work of fiction and is not intended to represent the views or opinions of Ben Balter or GitHub.

amatlack commented 1 year ago

Could also be a good corporate citizen and link to this when mentioning accessibility - https://github.com/readme/stories/anton-mirhorodchenko