English is Now the Most Powerful Programming Language
We better teach kids how to use it.
“What’s the most powerful programming language?” I asked grandson Jack as we zoomed together on our latest project.
“ChatGPT?” he guessed, perhaps giving some deference to my known obsession.
“Close,” I said. Then, parroting a recent internet meme, I told him the answer: “English because you use it to tell ChatGPT what program you want and then you get the program much faster than if you wrote it yourself in some other language.”
“OK,” said Jack. We continued on our project: getting a ChatGPT interface called AutoGen to program the Game of Life simulation for us. The Game of Life starts with a random pattern of cells on and off (see below).
The dots go on and off depending on the state of neighboring dots. Isolated cells and cells which are over-crowded die (disappear). Healthy populations spawn new cells in their vicinity. The pattern keeps changing. Ok, maybe only something a nerd would love but it’s what we wanted to do.
“write code to display a game of life,” we told AutoGen. It did; a pattern flashed on our shared screen and then disappeared.
“write and save code to display a game of life,” we amended. AutoGen told us where it had saved the code, which I then executed manually. A static picture appeared on our screen rather than the animation which I had expected.
I looked at the generated code. “I think I see the problem,” I told Jack. “The animation is only set to run through five frames and then it stops. I’ll fix the code.”
“Why?” asked Jack.
“Because it’s broken.”
“Why are you fixing it?”
“Because…. Oh, I see what you mean.” I was fixing it because I’ve been a programmer for 71 (count’em) years and that’s what programmers do. Old habits die hard. What I had to do was tell AutoGen more precisely what we expected the code to do.
“write and save code to display a game of life. The animation should run forever.” The new code ran a long time.
However, after a while the screen entered a repeating pattern. If a state repeats once, the game is in a loop and gets boring. If our screen were bigger, we might never see a repetition; but we only have the screen we have and didn’t want to be bored. “I know how I can fix the code so it doesn’t get stuck,” I said. Jack just looked at me until I realized that I had said English is the most powerful programming language.
“write and save code to display a game of life with an additional rule: every five frames, randomly either set one cell on or another cell off regardless of its current state or that of its neighbors.” It worked. I hadn’t written a single line of code. What I had done was act like a programming manager: 1) give a spec; 2) test the result; 3) refine the spec if it doesn’t result in what you expected; 4) repeat. Jack and I didn’t have to program but we did have to state specifically in English what we wanted.
Students don’t need to use slide rules, The Readers’ Guide to Periodical Literature, or a library catalog anymore. Nor do they need to spell obscure words correctly, do long multiplication, or have good handwriting. Typing will soon be obsolete. I don’t even use Google much. Why look at a bunch of ads (unless I’m shopping) when I just want an answer to a question? The ability to phrase a question or an instruction correctly, however, is more important than it’s ever been. So is the ability to look critically at what you get back and ask accurately and succinctly for sources and corrections.
The interfaces to AI are changing daily; we’re just in the early days. Much and probably soon more of our interface is spoken rather than written. The important skill is not in the use of ChatGPT or some other specific AI tool; what is essential is mastery of the language you use to access AI and in which it answers you.
Note 1: In case you want to see Game of Life in action, I asked AutoGen to make an HTML (web page) version. After a couple of tries, it got it right. Try it here.
Note 2. Maybe I should have just told AutoGen to find a way to stop any possible looping rather than designing the change myself.
Note 3: The rules for The Game of Life are (according to ChatGPT):
- Birth: A cell that is dead at one step will be alive at the next step if exactly three of its neighboring cells were alive at the previous step.
- Survival: A cell remains alive at the next step if two or three of its neighbors are alive at the previous step.
- Death: A cell dies (or remains dead) if it has fewer than two live neighbors (due to underpopulation) or more than three live neighbors (due to overpopulation).
Note 4: https://github.com/tevslin/game_of_life is the github repository for the python code written by AutoGen for a Streamlit version of the modified Game of Life.
Note 5: AI can be accessed in many languages. However, it is currently best in English because the large language models have been trained on web material which is primarily in English.
See also:
Comments