• theneverfox@pawb.social
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    4
    ·
    22 hours ago

    I use it so much. All my Google searches for syntax or snippets? Web searches are unuseable at this point, AI can spit it out faster. But the real savings? Repetitive code. I suck at it, I always make typos and it’s draining. I just toss in a table or an api response and tell it what I want and boom

    It probably does write 75% of my code by lines, but maybe 5% of the business logic is AI (sometimes I just let it take a crack at a problem, but usually if I have to type it out I might as well code it)

    What it’s good at drains my concentration, so doing the grunt work for me is a real force multiplier. I don’t even use it every day, but it might be a 3x multiplier for me and could improve

    But here’s the thing - programmers are not replaceable. Not by other humans, not by AI - you learn hyper specific things about what you work on

    • Sleepless One@lemmy.ml
      link
      fedilink
      English
      arrow-up
      7
      ·
      19 hours ago

      But the real savings? Repetitive code. I suck at it, I always make typos and it’s draining.

      It’s hard to say without being immersed in the codebase you work on, but wouldn’t making your code DRY (when possible) take care of a lot of the repetition without needing to write a bunch of incredibly similar code (be it by hand or with an LLM)?

      • TehPers@beehaw.org
        link
        fedilink
        English
        arrow-up
        3
        ·
        14 hours ago

        I haven’t used a LLM to help code in a while (yes I’ve tried), but I found them useful for repetitive configs, like asset files. Also sometimes it makes sense to just have 5 slightly different lines of code in a row instead of a new function.

        In general though, reasonable use of DRY is a good idea. There will still be repetitive parts though where a LLM autocompleter lets you just hit tab 5 times.

      • theneverfox@pawb.social
        link
        fedilink
        English
        arrow-up
        1
        arrow-down
        1
        ·
        10 hours ago

        No, it’s all different - like a normal use case is “write me a stored procedure to optionally update all fields on a row on this table” or “given the following json response, build a class to parse it into”

        We have a ridiculous database and multiple new api’s to integrate with every year, so this comes up a lot

    • groucho
      link
      fedilink
      English
      arrow-up
      5
      arrow-down
      1
      ·
      21 hours ago

      But the real savings? Repetitive code. I suck at it, I always make typos and it’s draining. I just toss in a table or an api response and tell it what I want and boom

      Get better at it, manually, or you’ll suck at it forever. It’s a skill like anything else.

      • MagicShel@lemmy.zip
        link
        fedilink
        English
        arrow-up
        1
        ·
        10 hours ago

        I agree, but I acknowledge we could be at a “cursive writing” moment where something that was once a critical skill becomes irrelevant. That’s sort of a pending question at this point.

        I mean I’ve spent a lot of time writing regex to automate large sets of changes. Sometimes it can be a bit fiddly to get the regex just so. Like replacing direct field access with getters where you have to find the field access and change .foo to .getFoo() and the capitalization can take a couple of tries to get just right.

        With AI you can literally just say “replace all direct field access (e.g. thing.foo) with getters and setters” and the AI will do it in under a second. It will still be a very useful skill to be able to do things like that with regex because not everything is so easy to communicate to the AI, but it will become less frequently needed and a lot of developers who never learned that skill will get by using AI and just doing the rare things AI can’t do with repetitive keyboarding.

        • groucho
          link
          fedilink
          English
          arrow-up
          4
          ·
          9 hours ago

          I see cursive writing brought up a lot in these conversations and I don’t think it applies. Firstly, the cognitive load of writing code is higher than writing your letters so they join up. You’re not just making sure you write the letters correctly, you’re also following the syntax rules of the language you’re writing. And while you’re writing, you’re reinforcing those rules in your head. Yes, initially it’s hard and boring.

          And yeah, sometimes you get it wrong or forget to capitalize. That is a feature, not a bug. The more you do it, the easier it gets. I spent a couple weeks trying to use CoPilot and at the end I still had to correct its shitty code, which either hallucinated features I wasn’t implementing, or hallucinated syntax rules I wasn’t using. It was like spending a sprint trying to get a subpar intern up to speed. At the end of those two weeks, my manual coding accuracy took a noticeable hit.

          I complained to higher-ups and they told me “oh it’s definitely a skill getting the prompt written correctly”, which was patronizing and irritating. Would I rather spend time getting good at asking the proprietary magic thinky box to maybe write good code this time, or would I rather get better at coding?

          I mean I’ve spent a lot of time writing regex to automate large sets of changes. Sometimes it can be a bit fiddly to get the regex just so. Like replacing direct field access with > getters where you have to find the field access and change .foo to .getFoo() and the capitalization can take a couple of tries to get just right.

          At least you’re learning more about regexes when you do this. Yes, there’s menial bullshit in coding. There’s menial bullshit in every field. Some of it gets abstracted away (syntax highlighting to help with comprehension), some of it gets kicked around and ultimately does not impress (VB’s drag-and-drop coding), and some of it stays because it’s necessary. Nobody likes doing manual stuff, but sometimes it’s preferable to trying to automate it.

          Also, I’ve never heard of anyone paying $20 a month for the privilege of not writing in cursive, or being unable to write because they don’t have internet. Something to think about.

          • MagicShel@lemmy.zip
            link
            fedilink
            English
            arrow-up
            3
            ·
            8 hours ago

            You’re not just making sure you write the letters correctly, you’re also following the syntax rules of the language you’re writing. And while you’re writing, you’re reinforcing those rules in your head.

            I get where you’re coming from, but I’ve worked with a lot of bad developers who never got the hang of this even as mid-level developers. On the other hand, I understand the utility of knowing how to do these things for ourselves. There are a number of “black-box” libraries that were just an absolute mystery to me until I tried implementing them myself and began to see these libraries are usually not complex so much as they are thorough in covering edge cases that 90% of users will never care about.

            It would definitely be a shame if these tools caused new developers to bypass fundamental skill development. My only hesitation is the number of developers who should’ve developed those skills and never did before AI. There’s something wrong either with how developers are learning or who is getting into development.

            I spent a couple weeks trying to use CoPilot and at the end I still had to correct its shitty code, which either hallucinated features I wasn’t implementing, or hallucinated syntax rules I wasn’t using.

            We are using CoPilot. As a code-completion engine it is handy. I’m much more skeptical about the new code it writes. Like you, I have not had good experiences with that.

            Also, I’ve never heard of anyone paying $20 a month for the privilege of not writing in cursive, or being unable to write because they don’t have internet. Something to think about.

            You’re right. Tool access is certainly something to think about. I have more nuanced thoughts, but I don’t want to disagree just to disagree, you know?

            • groucho
              link
              fedilink
              English
              arrow-up
              3
              ·
              8 hours ago

              On the other hand, I understand the utility of knowing how to do these things for ourselves. There are a number of “black-box” libraries that were just an absolute mystery to me until I tried implementing them myself and began to see these libraries are usually not complex so much as they are thorough in covering edge cases that 90% of users will never care about.

              Yeah, that’s one of my big fears. Not necessarily losing my job to an AI, but AI exacerbating existing bad practices.

              When I started my current job, we had one rock star coder responsible for a fairly fiddly piece of our product. He went heads-down for two weeks and churned out pages of densely-written python without comments. It did what it was supposed to do, flawlessly. He left the team shortly afterward to work on a bigger project, and we got word from the higher-ups that we had to support a new feature upstream in that code. And then another. And so on. Nothing’s commented. Everything’s over-optimized. We eventually ended up just cross-compiling the upstream logic and using that in our stack because it was easier than using his impenetrable stuff.

              In the end, we had to fix it with menial, boring, aggravating manual work anyway. We got ourselves into that situation without AI, but I could see something like that becoming more prevalent. And that was working code. Imagine getting a SEV, and everyone on the blame list shrugs and says “idk, I had CoPilot do it.”

              It would definitely be a shame if these tools caused new developers to bypass fundamental skill development. My only hesitation is the number of developers who should’ve developed those skills and never did before AI. There’s something wrong either with how developers are learning or who is getting into development.

              Yeah, this is part of it. There’s maybe the science of programming and also, for lack of a better term, the craft: writing maintainable code, handling a SEV, thinking in terms of uptime, setting things up to be reverted easily, shutting down neurotic code reviewers, testing your code… stuff like that. Universities are good at the science part. Internships, theoretically, handle the rest. This isn’t an AI issue, but I could see AI making this problem a lot worse.

      • theneverfox@pawb.social
        link
        fedilink
        English
        arrow-up
        1
        arrow-down
        1
        ·
        9 hours ago

        I’ve been doing it for more than a decade without help, I’m not any better at spelling or misclicks

        And to be clear, I can do it - I just really, really don’t want to. I hate it so much, my eyes glaze over and I have to force myself every second of the way. It’s not interesting, there’s no puzzles involved… It’s basically data entry

        • groucho
          link
          fedilink
          English
          arrow-up
          2
          arrow-down
          1
          ·
          9 hours ago

          It’s not interesting, there’s no puzzles involved… It’s basically data entry

          So? Show me an industry that’s 100% interesting all the time. Artists still have to stretch and gesso their canvases. Rock stars still have to deal with band drama and touring logistics. Directors have to work their budgets and wrangle big egos. Why should software, which is basically using fancy math to tell the dumbest guy in the room exactly what to do, be any different?

          There’s this awful idea that everything should be fun and nobody should struggle with anything or be forced to do anything menial. We want to be instant experts without going through the boring or hard stuff. And we’re willing to offload more and more of this onto proprietary black boxes in exchange for… what?

          • theneverfox@pawb.social
            link
            fedilink
            English
            arrow-up
            1
            ·
            5 hours ago

            So I should suffer just to suffer? You listed a whole lot of things that they hire people to do just about as soon as they can so they can. And offloading that let’s them do their actual job better

            I work with black boxes all the time. When I have a black box, I poke and prod it until I understand how to make it do what I want. And this particular black box was interesting, so I decided to open it up and learn how it works

            That’s the essence of software development. My job is not typing or data entry, my job is to trick a rock into doing things humans don’t want to do