3 ms·
Predicting the next word correctly in the right context requires tremendous, vast amounts of knowledge; about language, about the world, about code. You're tryi
by danielbln 2y ago
Predicting the next word correctly in the right context requires tremendous, vast amounts of knowledge; about language, about the world, about code. You're trying to be clever while being reductive, but you're also wrong.
Every programming project starts with a brand new problem to solve? That's obviously false. The vast majority of programming projects are not only composed of smaller and simpler problems (of which most are not novel in any way), they aren't often even novel to begin with.
These models are far from infallible (and frequently quite fallible), but if you can't even see the smallest sliver of utility for using LLMs for coding, I question your ability to judge technology.
- DanHulton 2y agoNot to get into a pissing war, but I'll judge ya right back. =) There's a phrase from aviation that I keep thinking about when I think about LLMs - "behind the airplane." When you're "behind the airplane," you're in a situation where the airplane is doing something you don't intimately understand and you're reacting to it. It is an _incredibly_ dangerous place to be, and is indicative of you being in an emergency situation and over your head. You want to be "ahead of the airplane," where you understand intimately what is happening, and you are making forward-thinking plans about what you expect to do in the coming seconds, minutes, and hours. When I'm coding, I generally feel "ahead of the code." I'm thinking ahead about the architecture and design of what it is I want to accomplish, refactors are done with a high level of understanding and for a well-understood reason, etc. When coding with an LLM, I feel like I'm "behind the code" - I'm being given code that I now have to evaluate for purpose. I don't intimately know what it's doing, why it's written that way, the broader effects it will have or how to integrate it into the larger system. When you are "behind the airplane," that's when mistakes happen and planes crash. I think that metaphor extends very well to coding here, as well. =)
- danielbln 2y agoThis is not how I use LLMs for coding. I request small snippets or edits, and most of my time is spent conversing and evaluating solution paths. Once I do request and accept code, it is heavily typed and evaluated by the IDE, it is checked against tests and the overall architecture and data flow is still coming from me, I merely off-shore the minute implementation details. And here lies the crux: there are so many different ways of using these tools, some will make the plane crash, some won't and it's all kind of in flux. That said, even the staunchest critic should see that there is _something_ useful there.