5 ms·
I think you and I are having very different experiences with these copilot/agents. So I have questions for you, how do you: - generate new modules/classes in y
by asadm 1y ago
I think you and I are having very different experiences with these copilot/agents. So I have questions for you, how do you:
- generate new modules/classes in your projects
- integrate module A into module B or entire codebase A into codebase B?
- get someones github project up and running on your machine, do you manually fiddle with cmakes and npms?
- convert an idea or plan.md or a paper into working code?
- Fix flakes, fix test<->code discrepancies or increase coverage etc
If you do all this manually, why?
- pnathan 1y agoI'm pretty fast coding and know what I'm doing. My ideas are too complex for claude to just crap out. If I'm really tired I'll use claude to write tests. Mostly they aren't really good though. AI doesn't really help me code vs me doing it myself. AI is better doing other things...
- asadm 1y ago> AI is better doing other things... I agree. For me the other things are non-business logic, build details, duplicate/bootstrap code that isn't exciting.
- stevenbedrick 1y agoTo do those things, I do the same thing I've been doing for the thirty years that I've been programming professionally: I spend the (typically modest) time it takes to learn to understand the code that I am integrating into my project well enough to know how to use it, and I use my brain to convert my ideas into code. Sometimes this requires me to learn new things (a new tool, a new library, etc.). There is usually typing involved, and sometimes a whiteboard or notebook. Usually it's not all that much effort to glance over some other project's documentation to figure out how to integrate it, and as to creating working code from an idea or plan... isn't that a big part of what "programming" is all about? I'm confused by the idea that suddenly we need machines to do that for us: at a practical level, that is literally what we do. And at a conceptual level, the process of trying to reify an idea into an actual working program is usually very valuable for iterating on one's plans, and identifying problems with one's mental model of whatever you're trying to write a program about (c.f. Naur's notions about theory building). As to why one should do this manually (as opposed to letting the magic surprise box take a stab at it for you), a few answers come to mind: 1. I'm professionally and personally accountable for the code I write and what it does, and so I want to make sure I actually understand what it's doing. I would hate to have to tell a colleague or customer "no, I don't know why it did $HORRIBLE_THING, and it's because I didn't actually write the program that I gave you, the AI did!" 2. At a practical level, #1 means that I need to be able to be confident that I know what's going on in my code and that I can fix it when it breaks. Fiddling with cmakes and npms is part of how I become confident that I understand what I'm building well enough to deal with the inevitable problems that will occur down the road. 3. Along similar lines, I need to be able to say that what I'm producing isn't violating somebody's IP, and to know where everything came from. 4. I'd rather spend my time making things work right the first time, than endlessly mess around trying to find the right incantation to explain to the magic box what I want it to do in sufficient detail. That seems like more work than just writing it myself. Now, I will certainly agree that there is a role for LLMs in coding: fancier auto-complete and refactoring tools are great, and I have also found Zed's inline LLM assistant mode helpful for very limited things (basically as a souped-up find and replace feature, though I should note that I've also seen it introduce spectacular and complicated-to-fix errors). But those are all about making me more efficient at interacting with code I've already written, not doing the main body of the work for me. So that's my $0.02!
- craftkiller 1y ago> generate new modules/classes in your projects I type: class Foo: or: pub(crate) struct Foo {} > integrate module A into module B What do you mean by this? If you just mean moving things around then code refactoring tools to move functions/classes/modules have existed in IDEs for millennia before LLMs came around. > get someones github project up and running on your machine docker > convert an idea or plan.md or a paper into working code I sit in front of a keyboard and start typing. > Fix flakes, fix test<->code discrepancies or increase coverage etc I sit in front of a keyboard, read, think, and then start typing. > If you do all this manually, why? Because I care about the quality of my code. If these activities don't interest you, why are you in this field?
- asadm 1y ago> If these activities don't interest you, why are you in this field? I am in this field to deliver shareholder value. Writing individual lines of code; unless absolutely required, is below me?
- craftkiller 1y agoAh well then, this is the cultural divide that has been forming since long before LLMs happened. Once software engineering became lucrative, people started entering the field not because they're passionate about computers or because they love the logic/problem solving but because it is a high paying, comfortable job. There was once a time when only passionate people became programmers, before y'all ruined it.
- asadm 1y agoi think you are mis-categorizing me. i have been programming for fun since i was a kid. But that doesn't mean i solve mundane boring stuff even though i know i can get someone else or ai to figure those parts out so i can do the fun stuff.
- craftkiller 1y ago
- skydhash 1y ago> generate new modules/classes in your projects If it's formulaic enough, I will use the editor templates/snippets generator. Or write a code generator (if it involves a bunch of files). If it's not, I probably have another class I can copy and strip out (especially in UI and CRUD). > integrate module A into module B If it's cannot be done easily, that's the sign of a less than optimal API. > entire codebase A into codebase B Is that a real need? > get someones github project up and running on your machine, do you manually fiddle with cmakes and npms If the person can't be bothered to give proper documentation, why should I run the project? But actually, I will look into AUR (archlinux) and Homebrew formula if someone has already do the first jobs of figuring dependency version. If there's a dockerfile, I will use that instead. > convert an idea or plan.md or a paper into working code? Iteratively. First have an hello world or something working, then mowing down the task list. > Fix flakes, fix test<->code discrepancies or increase coverage etc Either the test is wrong or the code is wrong. Figure out which and rework it. The figuring part always take longer as you will need to ask around. > If you do all this manually, why? Because when something happens in prod, you really don't want that feeling of being the last one that have interacted with that part, but with no idea of what has changed.
- chamomeal 1y agoFor stuff like adding generating and integrating new modules: the helpfulness of AI varies wildly. If you’re using nest.js, which is great but also comically bloated with boilerplate, AI is fantastic. When my code is like 1 line of business logic per 6 lines of boilerplate, yes please AI do it all for me. Projects with less cruft benefit less. I’m working on a form generator mini library, and I struggle to think of any piece I would actually let AI write for me. Similar situation with tests. If your tests are mostly “mock x y and z, and make sure that this spied function is called with this mocked payload result”, AI is great. It’ll write all that garbage out in no time. If your tests are doing larger chunks of biz logic like running against a database, or if you’re doing some kinda generative property based testing, LLMs are probably more trouble than they’re worth
- mackeye 1y ago> how do you convert a paper into working code? this is something i've found LLMs almost useless at. consider https://arxiv.org/abs/2506.11908 https://arxiv.org/abs/2506.11908 --- the paper explains its proposed methodology pretty well, so i figured this would be a good LLM use case. i tried to get a prototype to run with gemini 2.5 pro, but got nowhere even after a couple of hours, so i wrote it by hand; and i write a fair bit of code with LLMs, but it's primarily questions about best practices or simple errors, and i copy/paste from the web interface, which i guess is no longer in vogue. that being said, would cursor excel here at a one-shot (or even a few hours of back-and-forth), elegant prototype?
- asadm 1y agoI have found that whenever it fails for me, it's likely that I was trying to one-shot the solution and I retry by breaking the problem into smaller chunks or doing a planning work with gemini cli first.
- mackeye 1y agosmaller chunks works better, but ime, it takes as long as writing it manually that way, unless the chunk is very simple, e.g. essentially api examples. i tend not to use LLMs for planning because thats the most fun part for me :)
- frakt0x90 1y agoTo me, using AI to convert an idea or paper into working code is outsourcing the only enjoyable part of programming to a machine. Do we not appreciate problem solving anymore? Wild times.
- mackeye 1y agoi'm an undergrad, so when i need to implement a paper, the idea is that i'm supposed to learn something from implementing it. i feel fortunate in that ai is not yet effective enough to let me be lazy and skip that process, lol
- craftkiller 1y agoWhen I was younger, we all had to memorize phone numbers. I still remember those numbers (even the defunct ones) but I haven't learned a single new number since getting a cellphone. When I was younger, I had to memorize how to drive to work/the grocery store/new jersey. I still remember those routes but I haven't learned a single new route since getting a smartphone. Are we ready to stop learning as programmers? I certainly am not and it sounds like you aren't either. I'll let myself plateau when I retire or move into management. Until then, every night debugging and experimenting has been building upon every previous night debugging and experimenting, ceaselessly progressing towards mastery.
- fapjacks 1y agoI noticed this also, and ever since, I've made it a point to always have memorized my SO's number and my best friend's number.
- tracker1 1y agoI can largely relate... that said, I rarely rely on my phone for remembering routes to places I've been before. It does help that I've lived in different areas of my city and suburbs (Phoenix) so I'm generally familiar with most of the main streets, even if I haven't lived on a given side of town in decades. The worst is when I get inclined to go to a specific restaurant I haven't been to in years and it's completely gone. I've started to look online to confirm before driving half an hour or more.