3 ms·
I have my reservations about the quality of LLM generated code, but since I have neither studied ML in depth, nor compared different LLMs enough, I'll refrain f
by Tainnor 2y ago
I have my reservations about the quality of LLM generated code, but since I have neither studied ML in depth, nor compared different LLMs enough, I'll refrain from addressing that side of the debate - except maybe for noting that "I test the code" is not good enough for any serious project because we know that tests (manual or automated) can never prove the absence of bugs.
Instead, I offer another point of view: I don't want to use LLMs for coding because I like coding. Finding a good and elegant solution to a complex problem and then translating it into an executable by way of a precise specification is, to me, much more satisfying than prompt engineering my way around some LLM until it spits out a decent answer. I find doing code reviews to be an extremely draining activity and using an LLM would mean basically doing code reviews all the time.
Maybe that will mean that, at some point, I'll have to quit my profession because programming has been replaced by prompt engineering. I guess I'll find something else to do then.
(That doesn't mean that there aren't individual use cases where I have used ChatGPT - for example for writing simple bash scripts, given that nobody in their right mind really understands bash fully. But that's different from having my entire coding workflow based on an LLM.)
- 6keZbCECT2uB 2y agoMost of my time coding is spent on none of: elegant solutions, complex problems, or precise specifications. In my experience, LLMs are useful primarily as rubber ducks on complex problems and rarely useful as code generation for such. Instead, I spend most of my time between the interesting work doing rote work which is preventing me from getting to the essential complexity, which is where LLM code gen does better. How do I generate a heat map in Python with a different color scheme? How do I parse some logs to understand our locking behavior? What flags do I pass to tshark to get my desired output? So, I spend less time coding the above and more time coding how we should redo our data layout for more reuse.
- Tainnor 2y ago> Most of my time coding is spent on none of: elegant solutions, complex problems, or precise specifications. I find that deeply sad and it's probably one of the reasons why I'm partially disillusioned in programming as a profession. A lot of it is just throwing stuff at the wall and seeing what sticks. LLMs will probably accelerate that process.
- therein 2y ago> I don't want to use LLMs for coding because I like coding. Finding a good and elegant solution to a complex problem and then translating it into an executable by way of a precise specification is, to me, much more satisfying than prompt engineering my way around some LLM until it spits out a decent answer. I find doing code reviews to be an extremely draining activity and using an LLM would mean basically doing code reviews all the time. Exactly how I feel about it. This is why I don't find "coding with LLMs" as fun as many others seem to find it. Code reviews are draining because you start with a bunch of unknown unknowns or unproven pitfalls this code might have fallen into. And then you eliminate them on by one as you run the algorithm in your mind. It is a lot more draining than coding is because an experienced coder can take mindful steps and build something solid on a base that he trusts won't collapse. Code Review doesn't get any less draining as you get more experienced, unless you start outsourcing responsibility.