Writing Code Is the Easy Part
I read this great article recently by the inimitable Juan Ojeda. It was about using ChatGPT to try and write the code for an app. You should go read it.
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 fairly straightforward. The hard part is getting a clear and unambiguous set of requirements.
Of course, undoubtedly these models will get better and better and ‘understanding’ us and remembering context and refinements to hone in on the functionality we desire. Moreover, we will get better at speaking ‘promptese’ - the language of AI prompts. That said, I think there is still a bit of runway before this is working on the scale of enterprise software applications1.
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 this words in 12 months time. ↩︎