6 ms·
If LLMs were actually good for programming, I would consider it, but they just aren't. Especially when we are talking about "assistants" and stuff like that. I
by sweeter 2y ago
If LLMs were actually good for programming, I would consider it, but they just aren't. Especially when we are talking about "assistants" and stuff like that. I feel like I live in an alternate reality when it comes to the AI hype. I have to wonder if people are just that bad at programming or if they have a financial incentive here.
There are a handful of cases where LLMs are useful, mainly because Google is horrifically bad at bringing up useful search results, it can help in that regard... or when you can't find the right words to describe a problem.
What I would like to see out of an AI tool, is something that gobbles up the documentation to another programming tool or language, and spits it back out when it is relevant, or some context aware question and answers like "where in the code base does XYZ originate" or w/e. the difference is having a tool that assists me VS having a tool spit out a bunch of garbage code. Its the difference between using a tool, and being used by a tool
- fuzztester 2y ago>If LLMs were actually good for programming, I would consider it, but they just aren't. Especially when we are talking about "assistants" and stuff like that. I feel like I live in an alternate reality when it comes to the AI hype. I have to wonder if people are just that bad at programming or if they have a financial incentive here. solid points there. it is surely some of both reasons. for the bad programmers, it will be the former. for those invested in llms, it will be the latter, that is financial incentives - to the tune of billions or millions or close to millions, depending upon whether you are an investor in or founder of a top llm company, or are working in such a company, or in a non-top company. it's the next gold rush, obviously, after crypto and many others before. picks and shovels, anyone? and, more so for those for whom there are financial incentives, they will strenuously deny your statements, with all kinds of hand waving, expressions of outrage, ridicule, diversionary statements, etc. that's the way the world goes. not with a bang but a whimper. ;) sorry, t.s. eliot. https://en.m.wikipedia.org/wiki/The_Hollow_Men https://en.m.wikipedia.org/wiki/The_Hollow_Men
- andybak 2y agoI'm not sure whether I'm a "good programmer" or a "bad programmer" but sometimes I just want a problem to go way in the quickest way possible. I'm not always trying to create a timeless, perfect, jewel and there is a limit to how much I want to follow every highway and byway needed to do stuff across several dozen languages, libraries, platforms and frameworks. Some days I'm just tired.
- fuzztester 2y ago>I'm not sure whether I'm a "good programmer" or a "bad programmer" but sometimes I just want a problem to go way in the quickest way possible. True. Most programmers would think the same, at times. >I'm not always trying to create a timeless, perfect, jewel No one is, most of the time. Only, some people try to create somewhat good things some of the time, even given constraints. >and there is a limit to how much I want to follow every highway and byway needed to do stuff across several dozen languages, libraries, platforms and frameworks. Who has the time to do it, unless one is independently wealthy, so don't need to work, and is programming just for fun (although many of us do it for fun, part-time at least). Yes, my sentiments exactly, and I am sure it's that of many other programmers, too. The abstraction upon abstraction upon abstraction (Howdy, Java, but not only it) and the combinatorial explosion of technologies X their version(iti)s, is hell - like DLL hell on Windows, except much worse. >Some days I'm just tired. So yeah, I hear you, dude, and feel your pain. But the topic and argument was about whether llms reduce that pain enough to be worthwhile. I guess the answer is: different strokes for different folks.
- Tiberium 2y agoI'm curious about your experience - what specific LLMs and tools did you try? And what's your main programming language?
- sweeter 2y agoI tried ollama with llama 3 and 3.1, code llama, phi3, zephyr, chatgpt 4, all of what tgpt (cli tool) offers, copilot and a couple others but I don't remember. I primarily use Golang, as well as C, Zig, bash and learning Rust. copilot annoyed the shit out of me and I barely get any useful code from LLMs. I think the most help I get from LLMs is asking things like "what is this operator mean '~uint64'" or other non-common language constructs. I primarily will just pull up open-source code that is of verifiably high quality and learn from that.
- norir 2y ago> I have to wonder if people are just that bad at programming or if they have a financial incentive here. I have similar feelings to you, but I want to be careful about making assumptions. That being said, I see so many people making hyperbolic claims about the productivity gains of llms and a huge amount (though not all) of the time, they are doing low value work that betrays their inexperience and/or lack of ability. I have yet to see a good example of where an llm invented a novel solution to an important problem in programming. Until that happens -- and I'm not saying it won't -- I remain extremely skeptical about the grandiose claims. This is particularly true of the companies selling llm products who make vague claims about productivity benefits. Who is more productive, the person who solves the most leet code problems in a month or the person who implements a new compiler in the same time frame? The former will almost surely have the most lines of code, but they have done nothing of direct value. I point this out because of how often productivity is measured in lines of code and/or time to complete a problem with a known solution. So for me, when people brag about how much more productive they are with llms, I wonder, ok, well what are you building? I feel like llms are as likely going to make people build fragile bridges to nowhere at scale as anything truly revolutionary.
- creesch 2y agoI am not expecting novel solutions from LLMs. I purely use them as a tool in my tool belt. Some examples: Deciphering spaghetti code: LLMs generally are pretty good at picking apart code blocks and generally explaining the functional parts. A while ago I was dealing with code that had lots of methods on single lines with tons of conditions. I put in in chatGPT, asked it to go over it and it gave me a point by point explanation of all the logic in there. Again, I don't expect it to be perfect here, it doesn't need to be. The way my mind works once I have the explanation I can much easier go to the single line mess and follow it along. If chatGPT messed up I will see that, but I will also be much further along already with deciphering as I would have been doing it manually. Getting a quick start on technology, specifically if it is something I know I will only need to know once it helps me avoid tedious google searches. Instead I get a pretty decent rundown of whatever it is I need to know as well as some basics. In short, I don't they are miraculous technologies transforming my work. But, they are pretty good at removing some of the more tedious tasks letting me focus on other things. So they do make me more productive in that aspect.
- Arn_Thor 2y agoI know jack squat about programming. I could at one point do “hello world” in Python, if I recall correctly. Thanks to ChatGPT I now have scripts to make my life easier in a bunch of ways and a growing high-level understanding of how they work. I can’t program, an I won’t claim to. But I can be useful. Thanks to LLMs. (And before the catastrophists arrive: I know enough to be wary of the risks of running scripts I don’t understand, which is why I make a point of understanding how they function before I proceed)
- sweeter 2y agoThats great for sure, but I still think you should take the time to learn the basics. Also, go to the r/bash subreddit and search "chatGPT" and see just how many people end up there with: "HELP! ChatGPT destroyed my system" most commonly people want a command that will move pictures or something and the LLM spits out something feasible, they turn it into a shortcut on their mac and click it, and it is literally just 'find -type f -exec mv {} ..' with relative paths and it moves all of their critical files into random places. It is quite literally something I've seen happen at least 5 times. There is a lot of benefit in just learning a little bit and then having the flexibility to write anything you want.
- Arn_Thor 2y agoI agree I should learn to do it from scratch. And I’ve been given an added motivation to do so by seeing how useful just a few lines of code can be. And you’re not wrong. I’ve learned the benefit of versioning when working with LLMs because if you’re not careful asking it to do one change can easily break something else. It’s far from a panacea
- BeetleB 2y agoThere's a large continuum between great and crap, and it sounds like you've placed a rather high bar to even consider using it. I don't like BASH scripting. I wanted to automate a certain task and dump it in a justfile for convenient reference. Learning BASH scripting would be a poor use of my time - I didn't value the knowledge I would gain. Using Google to piece together everything I needed would have been very painful. Painful enough that I simply didn't bother in the past. Asking an LLM solved the problem for me. It took about 6 iterations, because I had somewhat underspecified and the scripts it returned, while correct, had side effects I didn't like. But even though it took several iterations it was infinitely more satisfying than the other options. Every time it failed I would explain to it what went wrong and it would amend the script. It's like having an employee do the work for me, but much much cheaper. That's the power of LLMs. They enable me to do things that just weren't worth the time in the past. Would I use it for my main programming work? No. But does it increase my productivity? Definitely.
- sweeter 2y agoThat sounds awful to me. I spent maybe 1 or 2 days reading the woolidge bash guide, and the Dylan araps bash Bible and now I have that skill forever. Sure I spent more time practicing but I can craft exactly what I want without even thinking about it. I value that knowledge. Use shellcheck and the bash lsp and that's it. But they way you talk about makes me feel weird. It honestly sounds a little insane.
- koonsolo 2y agoWhat kind of memory do you have? After 6 months of not using it, I would already forget more than 50% of it.
- _xiaz 2y agoYes, but then after two days it's back to 90% and the missing 10 are rarely important
- BeetleB 2y agoIf we're going with anecdotes, I have learned Bash scripting and zsh scripting separately at different points in my life. Both times I forgot it very quickly. My guess is that you value that knowledge and that helps you retain it. Practice of course helps. For me, my primary shell both at work and at home is xonsh, which is Python-based, and 90+% of all shell scripting I do is in Python in that shell. Having that knowledge of Bash is not even worth 2 days for me. If I were an embedded developer or a system administrator where I often have to SSH into accounts I don't control I could value Bash more but that's not the case for me and a fairly significant percentage of software engineers. Why spend a few days learning it when I don't need it? Even in the example above, I did it for my convenience, not because I needed it.
- TrackerFF 2y agoI'll counter you here. I'm starting to think that the people that moan the most about LLMs being terrible, might just be terrible at writing good queries. Like everything else: garbage in, garbage out. EDIT: I was not aiming this comment directly at you. But I've had a couple of devs try to convince me that tools like ChatGPT or Claude is garbage, and then use extremely short queries as proof. "Write me a website with [list of specs]", and then when it either fails or spits out half-baked results, they go "See? It's garbage!" On the other hand I've seen non-coders create usable tools, by breaking up the problem and inputting good queries for each of those sub-tasks.
- sweeter 2y agoCould be. I try to be verbose, but it also gets annoying to do. I usually just use some really handy GitHub search tricks and learn from other people's implementations.
- _xiaz 2y agoThe more I hang out in these places the more I believe the hypothesis that people are just bad at programming
- dkersten 2y agoI asked both ChatGPT 4o and Claude 3.5 Sonnet how many letters there are in the word strawberry and both answered “There are two r’s in the word strawberry”. When I asked “are you sure?” ChatGPT listed the letters one by one and then said yes, there are indeed two. Claude apologized for the mistake and said the correct answer is one. If the LLM cannot even solve such a simple question, something a young child can do, and confidently gives you incorrect answers, then I’m not sure how someone could possibly trust it for complex tasks like programming. I’ve used them both for programming and have had mixed results. The code is always mediocre at BEST but downright wrong and buggy at worst. You must review and understand everything it writes. Sometimes it’s worth iteratively getting it to generate stuff and you fix it or tell it what to fix, but often I’m far quicker just doing it myself. That’s not to say that it isn’t useful. It’s great as a tool to augment learning from documentation. It’s great at making pros and cons lists. It’s great as a rubber duck. It can be helpful to set you on a path by giving some code snippets or examples. But the code it generates should NEVER be used verbatim without review and editing, at best it’s a throwaway proof of concept. I find them useful, but the thoughts that people use them as an alternative to knowing how to program or thinking about the problem themselves, that scares me.
- msp26 2y agoWould you ask a blind person to pick between two colours for you? LLMs do not see the individual letters in the word, they work with tokens.
- mckirk 2y agoSorry, but this 'benchmark question' really isn't all that useful. Asking an LLM questions that can only be answered at the letter level is like asking somebody who is red-green colorblind questions that can only be answered at the red-green level. LLMs are trained by first splitting text into tokens that comprise multiple letters, they never 'see' individual letters. The 'confidently answering with a wrong solution' aspect is of course still a valuable insight, and yes, you need to double-check any answer you've received from an LLM. But if you've never tried GitHub Copliot, I can recommend doing so. I'd be surprised if it doesn't manage to surprise you. For me it was actually really useful to get those parts of code out of the way that are essentially just an 'exercise in typing', once you've written a comment explaining the idea. (It's also very useful to have a shortcut to quickly turn off its completions, because otherwise you end up spending more time reading through its suggestions than actual coding, in situations where you know it won't come up with the right answer.)