Writing Code Is the Easy Part
Juan Ojeda tried using ChatGPT to write the code for an app.
The problem he faced was not that the code didn’t work, it worked fine. The problem was trying to communicate an unambiguous set of requirements, or said differently the problem is that human languages are designed to communicate with humans, not machines. Trying to get the level of specificity required with human languages is really hard, that’s why programming languages were invented.
What I wanted to know was how the job of communication can be efficiently accomplished when we have the power to design the language, and when only one end of the language is humans, with all their faults, and the other is a machine with high reliability to do what it is told to do, but nothing else.
Once you can communicate a clear and unambiguous set of requirements, the mechanics of writing the code is normally straightforward. The hard part is getting a clear and unambiguous set of requirements.
These models will get better at ‘understanding’ us. We will get better at speaking ‘promptese’ — the language of AI prompts. But the fundamental problem remains: human language was designed for humans, and ambiguity is a feature, not a bug1.
This all reminds me of one of my favourite quotes.
He wished she knew his impressions, but he would as soon as thought of carrying an odour in a net as of attempting to convey the intangibles of his feeling in the coarse meshes of language. So he remained silent.
We would as soon as think of carrying an odour in a neural net as of attempting to convey the intangibilities of our product ideas in the coarse meshes of human language. So we wrote the code ourselves.
Looking forward to eating these words in 12 months time. ↩︎