Over the last year, I rarely sit down and write code anymore.
Instead, I have code generated and then iterate on it until we achieve the desired effect.
I direct and collaborate.
Similarly, to change existing code, I attach the file to a chat or paste the functions that require changes, summarize the change and iterate until it achieves the desired effect.
My projects are almost always side projects. Whims. Ideas. Prototypes. Examples. Ad hoc’ery. Not production grade code.
I love it because I can go from idea to artifact in very little time, then push the idea much further than I would/could otherwise.
I try to tell people about this, but it seems to bounce off. Especially other programmers. It’s alien.
In the head of my victims they are probably thinking:
“I can develop much better code than chatgpt”.
In my head, I am thinking:
“Without chatgpt, I would have no code, no system, nothing, because it’s a whim, or I don’t care enough to break out the real tools, or whatever….”
A good name for this approach to writing code is: “Chat-Driven Programming”.
Taken from David Crawshaw in his piece “How I program with LLMs”
For example:
A lot of the value I personally get out of chat-driven programming is I reach a point in the day when I know what needs to be written, I can describe it, but I don’t have the energy to create a new file, start typing, then start looking up the libraries I need. […] LLMs perform that service for me in programming. They give me a first draft, with some good ideas, with several of the dependencies I need, and often some mistakes. Often, I find fixing those mistakes is a lot easier than starting from scratch.
Exactly!
He gets it! And it’s a great name. Very marketable. I expect to see a Packt book with this title any second.
Lots of people are thinking along these lines.
See this quote in a HN discussion highlighting that the effectiveness of this approach requires strong (written) communication skills:
Experienced programmers that can also communicate effectively provide the model with many design hints, details where to focus, …, basically escaping many local minima immediately."
– https://news.ycombinator.com/item?id=42617645
And this comment by Nat Eliason’s promoting his new course teaching non-coders/low-coders how to do exactly this:
The more I build with these tools, the more I’m realizing we’re entering a golden age of easy, personalized, software development.
– How to Build Your Own Software with AI (No Experience Necessary)
I think this is a big idea. A foreshadow of where we are headed: that is, to generate ad hoc and personalized software/systems on demand because it is so easy.
I tweeted a version of this here:
Chat-driven programming
— Jason Brownlee (@jason2brownlee) January 7, 2025
Use LLMs for code-based problem-solving. Requires some technical skill, communication skills and iterative refinement
For bespoke personal software projects
Why some devs don't "get it": the alternative is no solution, not a better-engineered solution