5 ms·
Well I have the exact opposite experience. I don't know why people struggle to get good results with llms.
by bongodongobob 2y ago
Well I have the exact opposite experience. I don't know why people struggle to get good results with llms.
- thuuuomas 2y agoWould you feel comfortable pushing generated code to production unaudited?
- bongodongobob 2y agoWould you feel comfortable pushing human code to production unaudited?
- candiddevmike 2y agoOnly on Fridays before a three day weekend.
- dijksterhuis 2y agodepends on the human. but i would never push llm generated code. never. - edit to add some substance: if it’s someone who * does a lot of manual local testing * adds good unit / integration tests * writes clear and well documented PRs * knows the code style, and when to break it * tests themselves in a staging environment, independent of any QA team or reviews * monitors the changes after they’ve gone out * has repeatedly found things in their own PRs and asked to hold off release to fix them * is reviewing other people’s PRs and spotting things before they go out yea, sure, i’ll release the changes. they’re doing the auditing work for me. they clearly care about the software. and i’ve seen enough to trust them. and if they got it wrong, well, shit, they did everything good enough. i’m sure they’ll be on the ball when it comes to rolling it back and/or fixing it. an llm does not do those things. an llm *does not care about your software* and never will. i’ll take people who give a shit any day of the week.
- amonith 2y agoI'd say it depends more on "the production" than the human. There are legal means to hold all people accountable for their actions ("Gross neglience" and all that). So you can basically always trust that people will fix what they messed up given the possibility. So if you can afford for the production to be broken (e.g. the downtime will just annoy some people) you might as well allow your team to deploy straight to prod without audits. It's not that rare actually.
- johnnyanmac 2y agoNope. But AI's sales pitch is that it's an oracle to lean on. Which is part of the problem. As a start, let me know when an AI can fail test cases, re-iterate on its code to correct the test case, and re-submit. But I suppose that starts to approach AGI territory.
- charrondev 2y agoFor my I have a company subscription for Copilot and I just use the line based autocomplete. It’s mildly better than the built in autocomplete. I never have it do more than though and probably wouldn’t buy a license for myself.
- hnthrowaway6543 2y agoLLMs are great for simple, common tasks, i.e. CRUD apps, RESTful web endpoints, unit tests, for which there's an enormous amount of examples and not much unique complexity. There's a lot of developers whose day mostly involves these repetitive, simple tasks. There's also a lot of developers who work on things that are a lot more niche and complicated, where LLMs don't provide much help.
- 101008 2y agoYeah, exactly this. If I ask Cursor to write the serializer for a new Django model, it does it (although sometimes it invents fields that do not exist). It saves me 2 minute. When I ask him to write a function that should do something much more complex, it usually do something so bad it takes me more time because it confuses me and now I have to back to my original reasoning (after trying to understand what it did). What I found useful is to ask him to explain me what a function does in a new codebase I am exploring, although I have to be very careful because a lot of time invents or skips steps that are crucial.
- dartos 2y agoSee, I recently picked up the Ash framework for elixir and it does all that too, but in a declarative, precise language which codegens the implementation in a deterministic way. It just does the job that cursor does there, but better. Maybe us programmers should focus on making higher order programming tools instead of black box text generators for existing tools.
- danenania 2y agoIn my experience this underrates them. They can do pretty complex tasks that go well beyond your examples if prompted correctly. The real limiting factor is not so much task complexity as the level of abstraction and indirection. If you have code that requires following a long chain of references to understand, LLMs will struggle to work with it. For similar reasons, they also struggle with: - generic types - inheritance hierarchies - long function call chains - dependency injection - deeply nested structures They're also bad at counting, which can be an issue when dealing with concurrency—i.e. you started 5 operations concurrently at different points in your program and now need to block while waiting for 5 corresponding success or failure messages. Unless your code explicitly uses the number 5 somewhere, an LLM is often going to fail at counting the operations. All in all, the main question I think in determining how well an LLM can do a task is whether the limiting factor for your task is knowledge or abstraction. If it's knowledge (the intricacies of some arcane OS API, for example), an LLM can do very well with good prompting even on quite large and complex tasks. If it's abstraction, it's likely to fail in all kinds of seemingly obvious ways.
- amonith 2y agoSeriously though, what are you doing? Every single example everywhere throughout the internet that tries to show how good AI is at programming shows so mindbogglingly simplistic examples that it's getting annoying. It sure is a great learning tool when you're trying to do something experimental in a new stack or completely new project, I'll give you that, but once you reach the skill level where someone would hire you to be an X developer (which most developers disagreeing with you are, mid+ developers of some stack X) the thing becomes a barely useful autocomplete. Maybe that's the problem? It's just not a tool for professional developers?
- deleted 2y ago[deleted]
- Viliam1234 2y agoI am happy with the LLMs, but I only tried them on small projects done at my free time. As a back end developer I am not familiar with the latest trends in JavaScript and CSS, and frankly I do not want to spend my time studying these. A LLM can generate an interactive web game based on my description. I review the code, it is usually okay, sometimes I suggest an improvement. I could have done all of that -- but it would take me a week, and the LLM does it in seconds. So it is a difference between a hobby project done or not done. I also tried a LLM at work, not to code, but to explain some complex topics that were new to me. Once it provided a great high-level description that was very useful. And once it provided a great explanation... which was a total lie, as I found out when I tried to do a hello-world example. I still think the 50% success rate is great, as long as you can quickly verify it. Shortly, we need to know the strengths and the weaknesses, and use the LLMs accordingly. Too much trust will get you burned. But properly used, they can save a lot of time.
- FeepingCreature 2y agoI mean, let me just throw in an example here: I am currently working on https://guesspage.github.io https://guesspage.github.io , which is basically https://getguesstimate.com https://getguesstimate.com but for flowtext instead of a spreadsheet. The site is ... 99.9% Claude Sonnet written. I have literally only been debugging and speccing. Sonnet can absolutely get very confused and break things. And there were tasks where I had a really hard time getting it to do the right thing, or understand what I wanted. But I need you to understand: Sonnet made this thing for me in two and a half days of part-time prompting. That is probably ten times faster than it would have taken me on my own, especially as I have absolutely no design ability. Now, is this a big project? No, it's like 2kloc. But I don't think you can call it "simple" exactly. It's potentially useful technology. This sort of "just make this small tool exist for me" is where I see most of the value for AI in the next year. And the definition of "small tool" can stretch surprisingly far.
- threeseed 2y agoI just asked Claude to generate some code using the SAP SuccessFactors API. Every single example was completely useless. The code wouldn't compile, it would invent methods and variables and the instructions to go along with it were incoherent. All whilst gaslighting along with the way. I have also previously tried using it with some Golang code and it would constantly add weird statements e.g. locking on non-concurrent operations. LLMs are great when you are doing the same things as everyone else. Step outside of that and it's far more trouble than it's worth.
- dankwizard 2y ago"LLMs are great when you are doing the same things as everyone else. Step outside of that and it's far more trouble than it's worth." If you're doing something in a way it's not in the training data set, maybe your way of approaching the problem is wrong?
- threeseed 2y agoSorry but some of us aren't building the ten millionth CRUD app. SuccessFactors is a popular HR platform and I was asking it any question and getting the wrong answer every time.
- johnnyanmac 2y ago>If you're doing something in a way it's not in the training data set in my industry, the "training data set" won't get much farther from public code than the barebones, generated doxygen comments we call "documentation". But in a way you're also right. The industry's approach is fundamentally wrong, making 20 solutions to a problem with plenty of room to standardize a proper approach (plenty of room where you need proprietary techniques, but that's getting less true by the month). But an LLM isn't going to fix that cultural issue and will suffer from it.
- warkdarrior 2y ago> The industry's approach is fundamentally wrong, making 20 solutions to a problem with plenty of room to standardize a proper approach [...]. But an LLM isn't going to fix that cultural issue and will suffer from it. LLM-powered development may push the industry towards standardization. "Oh, CoPilot cannot generate proper code for your SDK/API/service? Sorry, all my developers use CoPilot, so we will not integrate with your SDK/API/service until you provide better, CoPilot-friendly docs and examples."