I read your deleted post and agree that too is one of the ideas I think has great potential.
However I think that it needs more. A recent paper that I read, again not authoritative, but that goes into more details along those lines is
“ChatLogo: A Large Language Model-Driven Hybrid Natural-Programming Language Interface for Agent-based Modeling and Programming” by John Chen and Uri Wilensky (pdf)
Some of the key takeaways for me were
- Support novice programmers to “talk to computers” in a mix of programming and natural languages.
- Provide a more friendly interface for learners with no or little computer science backgrounds to creatively express themselves by programming computers.
- Instead of right away writing code and giving instructions, ChatLogo attempts to clarify the learners’ needs and intention.
- Instead of sending large chunks of code directly to the learner, it attempts to co-develop the NetLogo code. The learner is free to edit the code: either in NetLogo, or in natural languages through the “Ask” feature.
- Instead of overclaim the correctness of the code, it admits the possibility of making mistakes, and co-works with the learner to address the potential issues.
I could not find any source code or more details on how Chat was layered on top of or interfaced with NetLogo but the ideas alone are of value.
This again reminds me of how autopilots works in planes and the book I noted earlier. (ref) When I note autopilot do not think of a binary switch, think of all of the knobs and switches that give information to the autopilot and let the autopilot know what to do and what not to do.
While it seems that many other tools such as this like to use the word copilot
, e.g. a Google search llm copilot source code
, I tend to disagree with that analogy but will have to live with it as that is how one finds related ideas.