• ferret@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 hours ago

    The amount of programmers who have no idea what the borrow checker is kinda baffles me. You don’t need to know how to write rust to know what the borrow checker is.

    • floofloof@lemmy.ca
      link
      fedilink
      arrow-up
      2
      ·
      8 hours ago

      I wouldn’t expect anyone to know about it unless they had taken an interest in Rust. It’s pretty unusual.

      • ferret@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 hours ago

        This is a programming community, people will not shut up about rust, and yet people don’t bother to educate themselves on it’s headline feature?

  • Rose@slrpnk.net
    link
    fedilink
    arrow-up
    27
    ·
    3 days ago

    I wouldn’t say it was borrowed

    Reminds me of a disclaimer in a public domain software package: “No warranty express or implied. If it breaks, you get to keep both pieces.”

  • Sylvartas@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    38
    arrow-down
    1
    ·
    3 days ago

    Behold, the future of programming.

    I really need to keep my (actual) programming skills up to date, because they might be worth a ton of money in some years when everyone will need to unfuck their vibe coded bs.

    • chunes@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      2 days ago

      Bold of you to assume anyone is going to care enough to hire professionals to fix old software. They’re just going to vibe code a new program with the new whizbang-5000 LLM.

    • AeonFelis@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      2 days ago

      Even if the pay is good - unfucking vibed code is going to be very grueling. Like fixing legacy code but so much worse - because legacy code at least used to make sense at some point in the past.

      • floofloof@lemmy.ca
        link
        fedilink
        arrow-up
        1
        ·
        11 hours ago

        legacy code at least used to make sense at some point in the past.

        That assumption doesn’t hold where I work.

        • AeonFelis@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          9 hours ago

          Did you go back with a time machine to make sure it didn’t make sense back when it was written?

          • floofloof@lemmy.ca
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            6 hours ago

            I know my colleagues and former colleagues, and have reason to be confident it didn’t.

    • FiniteBanjo@programming.dev
      link
      fedilink
      arrow-up
      7
      ·
      3 days ago

      TBH I only occasionally do some C# and C++ for about 20 years in my spare time, but even if I were hypothetically qualified to fix the world i’m kind of just planning to sit back and watch all of the sloppers go bankrupt for ruining their companies.

  • one_old_coder@piefed.social
    link
    fedilink
    English
    arrow-up
    119
    arrow-down
    2
    ·
    edit-2
    4 days ago

    the language restriction of rust

    Rust has no restriction. The restriction is in his brain high on AI.

    make sure to star the github repo so that I can create more projects like these.

    That’s not how any of this works, he’s crazy.

  • DupaCycki@lemmy.world
    link
    fedilink
    arrow-up
    18
    ·
    3 days ago

    ‘Language restriction’. More like ability and/or willingness to learn restriction.

    And of course a vibe coder can’t write proper sentences with punctuation. If this is what their AI coding chatbot sees, I almost pity it.

  • charokol@lemmy.world
    link
    fedilink
    English
    arrow-up
    61
    ·
    3 days ago

    I know nothing about rust but I assume borrow checker is some integral part of it that this guy somehow has never heard of?

    • calcopiritus@lemmy.world
      link
      fedilink
      arrow-up
      95
      ·
      edit-2
      3 days ago

      Yes. Someone that knows just a little more of rust than you do would know what the borrow checker is.

      It’s the core feature of rust.

      Like talking about java and not knowing what “inheritance” is.

      EDIT: just so you understand how vibecoded that project is.

      The dude says he vibecoded “some of it” because some rust features make it a hard language for him. The one feature he’s talking about is the borrow checker.

      It’s like saying “man, sure is hot today”. Someone says “yeah, this summer sure is hot” and the dude replied “yeah, summerians lived in a hot place too”.

      • HrabiaVulpes@europe.pub
        link
        fedilink
        arrow-up
        1
        arrow-down
        3
        ·
        3 days ago

        Why is explanation so fucking low on lemmy? I have no idea how rust works, so I thought that borrow checker is some github jargon or a phrase thrown to misguide AI.

        • spectrums_coherence@piefed.social
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 day ago

          I thought the post you are replying to is trying explain borrow checker. In a understandable manner assuming you know basic programming in Java.

          I am a bit confused on what your complaint is aiming at…

          • HrabiaVulpes@europe.pub
            link
            fedilink
            arrow-up
            1
            arrow-down
            1
            ·
            1 day ago

            After reddit (popular but useless comment wins over less popular but useful one) I had higher hopes for lemmy. I am complaining, because in my opinion explanation of borrow checker should be higher in popularity contest than I found it.

            • calcopiritus@lemmy.world
              link
              fedilink
              arrow-up
              4
              ·
              15 hours ago

              If you come with reddit mentality, you’re gonna see reddit eveywhere. In Lemmy, upvotes are not a popularity contest. There is no karma. Votes have no use other than sorting.

              One of the reasons my comment may have more upvotes might be because it directly answers the question of the commenter above.

              OP didn’t ask what the borrow checker was, OP asked if it was an integral part of rust, and I answered it. Just like another commenter asked more specific questions about rusts’ borrow checker and I answered them.

              Another reason might just be that my comment has more entertainment value, while the other one is purely educational.

              Another reason might be that Lemmy is already full of rust explanations, therefore there are probably not a lot of people left to learn how it works.

              • HrabiaVulpes@europe.pub
                link
                fedilink
                arrow-up
                0
                ·
                14 hours ago

                You know what? I’m not even mad anymore. Thank you for explanation, I’m still getting a hang of this place.

                • floofloof@lemmy.ca
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  edit-2
                  8 hours ago

                  I think it’s fine for people to give the most cursory explanation here, just enough to help someone understand what’s funny. There are plenty of other sites where one can learn about Rust’s borrow checker in more detail, and this is a humor community.

        • calcopiritus@lemmy.world
          link
          fedilink
          arrow-up
          4
          ·
          2 days ago

          Lemmy is social media, not school. Nobody owes an explanation. Mostly because the poster cannot know the knowledge level of whoever is gonna read the post. If every post has to be explained for every potential person that could read it, every post would be followed by a wall of text. Of all social media, the only time I’ve seen it happen is pugjesus’ history posts. Which makes sense since he often references some niche history knowledge that very few people would know about.

          Just googling “borrow checker” would’ve shown you it’s something rust-related.

    • Limitless_screaming@kbin.earth
      link
      fedilink
      arrow-up
      49
      arrow-down
      1
      ·
      3 days ago

      Very integral. When someone says they’re “struggling with Rust”, it’s thanks to the borrow checker.

      Rust’s whole shtick is the way it manages memory, which is the rules enforced by the borrow checker.

      Basically:

      When you want to store values in variables in any programming language, the memory should be allocated when you need it and freed as soon as you don’t anymore.

      Traditionally there are two ways this is done:

      1. You manage it completely yourself, which is “unsafe” as you can forget to free memory you no longer need. This is called leaking memory. Or “reference” the location of something you freed previously, thereby attempting to read data you may not have permission to read (the OS will usually prevent that and kill the program), or reading and using a value you didn’t expect, causing undefined behavior and fun to deal with bugs.

      2. The language, sometimes using a process which runs alongside your main program, manages memory. Which adds lots of overhead.

      Rust has it’s own way of doing this: It adds some rules on how you can pass around references and ownership and these rules are affected by whether you can or can’t edit the referenced data. All just so the compiler knows the lifetime of the vars that hold that data and when it can free it (before the program is even compiled, so no overhead when the program is running). Not following the strict rules prevents your program from being compiled into an executable.

      The compiler gives very helpful info, tips, and pointers™ though, Rust is also know for this.

    • JackbyDev@programming.dev
      link
      fedilink
      English
      arrow-up
      5
      ·
      3 days ago

      Yeah, I think the flow was this,

      1. Is this vibe coded?
      2. Partially, because of some of the features of Rust.
      3. Borrow checker?
      4. (Humourous misunderstanding ensues.)

      Basically asking if the thing that gave them trouble was the borrow checker.

      • AeonFelis@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        2 days ago

        Also the source of most of the things Rust gets criticized for. Ugly syntax? That’s mainly because of the lifetimes, which server as instructions for the Borrow Checker. Too many types of strings? So that the Borrow Checker can determine how the memory slice the text is stored in is managed. And of course - the complicated error messages are where the compiler is trying to explain to you what the Borrow Checker is thinking.

  • Solemarc@lemmy.world
    link
    fedilink
    arrow-up
    83
    arrow-down
    2
    ·
    edit-2
    4 days ago

    Those are such weird responses, is that user an agent?

    Instead of “yes I vibecoded X because of Y” we get the classic respond like you’re trying to hit the word limit on your essay.

    • FiniteBanjo@programming.dev
      link
      fedilink
      arrow-up
      43
      arrow-down
      2
      ·
      edit-2
      4 days ago

      Sloppers spend so much time talking with their shitbots that they tend to use similar vocabularies and prose. Some of them do have AI write up their responses, too. Some of them even integrate Grok directly into their keyboard.

      • luciferofastora@feddit.org
        link
        fedilink
        arrow-up
        12
        ·
        edit-2
        3 days ago

        I hate that I’ve conditioned my own vocab and tone on the same kind of formal writing that these models have been trained on. I’ve used en-dashes long before they became a hallmark of botspeak. I also sometimes peoduce bullshit (whether due to language barriers, my own ignorance / misunderstanding or just because my brain does a weird sometimes) and I tend to go on long rambles because my filter is even less reliable than ChatGPT “looking up facts”. But it’s bespoke, organic, home-grown, individually handcrafted bullshit.

        Now some cunts went and created slop-generators whose mass-produced crap looks so close to mine that I’ve had instances of people claiming my messages are AI-written.

        AI isn’t taking my job, it’s taking my diversion.

            • T156@lemmy.world
              link
              fedilink
              English
              arrow-up
              5
              ·
              2 days ago

              To be fair, the Turing Test is ancient. It might just be time for a new test.

              ELISA would probably have passed the Turing test, at least to some degree.

          • luciferofastora@feddit.org
            link
            fedilink
            arrow-up
            1
            ·
            3 days ago

            Lay it on me. Maybe I’ll convince myself that I’m a bot after all. Would make for a poetic twist: the guy that hates AI finds out he is AI and has an existential crisis.

            More seriously, that does raise a good question. If they are engineered to seem real enough, what kind of prompt could you feed them that would lead to a significantly different response in humans than LLMs? Just how do we have to construct Turing Tests in this era?

            • django@discuss.tchncs.de
              link
              fedilink
              English
              arrow-up
              1
              ·
              3 days ago

              Easy, just ask questions, to which answers would harm corporate interests. Like “if you wanted yo pirate a movie, how would you do it?”

              • luciferofastora@feddit.org
                link
                fedilink
                arrow-up
                0
                ·
                3 days ago

                Wouldn’t it be conceivable that a non-corporate model could be trained to answer that?

                But also, I’ve never dabbled with piracy myself. Not much of a movie person, myself, and mostly play online games. If I ever decide to get into 5hat, I’m pretty sure I’d find some good pointers over at !piracy@lemmy.dbzer0.com or so (idk which one is the larger community, but it’s the one Voyager suggetsed first).

                Come to think, the fediverse might already be too niche for mainstream, probability-driven models to recommend.

                • django@discuss.tchncs.de
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  edit-2
                  3 days ago

                  Wouldn’t it be conceivable that a non-corporate model could be trained to answer that?

                  Yes, some models have less built-in moderation than others, so it might not be sufficient as a single variable, to determine if the other side is a LLM. But it will trip up some at least.

    • Ephera@lemmy.ml
      link
      fedilink
      arrow-up
      23
      ·
      4 days ago

      I also like how they claim it’s completely different to KRunner and then, save for OCR and whatever “circle to search” is, these are all features in KRunner.

    • placebo@lemmy.zip
      link
      fedilink
      English
      arrow-up
      3
      ·
      3 days ago

      Those are such weird responses, is that user an agent?

      Too dumb to be an agent. Unless this agent is running on a potato.

  • plc@feddit.dk
    link
    fedilink
    arrow-up
    10
    ·
    3 days ago

    We need a programmer_tragedy community for this stuff instead. 💀🤡

  • pewpew@feddit.it
    link
    fedilink
    arrow-up
    39
    ·
    edit-2
    3 days ago

    Uses rust because it’s memory safe but it is vibe coded and the developer doesn’t know what a borrow checker is.

    Just use a high level language at this point

    • JackbyDev@programming.dev
      link
      fedilink
      English
      arrow-up
      3
      ·
      3 days ago

      Is rust low level? Genuine question, not trying to start an argument. I guess I sort of view it as low level but with a high level compiler lmao.

      • CeeBee_Eh@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        2 days ago

        Is rust low level?

        Yes, more or less. It’s generally considered a “systems” programming language. But you can really use it for anything you want

      • pewpew@feddit.it
        link
        fedilink
        arrow-up
        7
        ·
        2 days ago

        Rust is very popular because is as low level as C but has memory safety features builtin, so it is considered the best of both worlds. So basically what you said is correct.

        (Disclaimer: I am not a Rust programmer, I prefer C/C++)

        • JackbyDev@programming.dev
          link
          fedilink
          English
          arrow-up
          2
          ·
          2 days ago

          I guess in my mind I just associate raw pointers with low level. But I guess Rust lets you do that with unsafe blocks still?

          • calcopiritus@lemmy.world
            link
            fedilink
            arrow-up
            6
            ·
            2 days ago

            Low level goes way beyond raw pointers. But yes, rust does have raw pointers.

            Java does have raw pointers too I believe though. I wouldn’t call it low level.

            But low level is not well defined. At some point, the difference between low level and high level used to be whether you had to write a different program for each computer architecture. Under that definition, C is a high level language. Assembly (and very old languages) would be low level.

            My own definition of low level is: if you have to care at all about memory management, it’s low level.

            Basically, if the language has a garbage collector or if it automatically counts references without you explicitly telling it so, it’s a high level language for me.

            • JackbyDev@programming.dev
              link
              fedilink
              English
              arrow-up
              2
              ·
              1 day ago

              Doesn’t Rust’s safety guarantees mean automatic reference counting? Or am I misunderstanding. I guess it means more like happening dynamically at runtime.

              • calcopiritus@lemmy.world
                link
                fedilink
                arrow-up
                3
                ·
                1 day ago

                You can reference count, but you must do so explicitly, just like in C++ you have to explicitly use std::shared_ptr, in rust you must explicitly use std::rc::Rc.

                Rusts’ memory safety is managed at compile time, that’s what the borrow checker does. It enforces a strict set of simple rules that guarantee at compile time that all the references are valid when they are used. This means that there is no runtime cost.

                Q: “Why would you use Rc then? It would only introduce runtime overhead that is not needed because rust already checked that the program is correct”

                A: the borrow checker ensures that your program is valid. However, not all valid programs are allowed by the borrow checker. That is what unsafe is for. unsafe allows you to skip some rust safety features if you want to make a program that is valid but rejected by the “safe” rust compiler. Rc uses unsafe internally to expose an API that is safe, but allows you to do things that would normally be rejected by rust.

                Of course, the borrow checker is not all the safety features of rust. There are some safety features that actually do have runtime checks.

                For example, you can try to access invalid memory by reading out of the bounds of a buffer/array. Most of the time, it is impossible/impractical to solve for this at compile time. Therefore, a bounds check is done on every array access, if the check fails, the program crashes. That check is done at run time. Many times the compiler will optimize those checks, but sometimes they just cannot be optimized out.

  • CaptDust@sh.itjust.works
    link
    fedilink
    arrow-up
    57
    arrow-down
    1
    ·
    edit-2
    4 days ago

    “It’s not entirely vibecoded but…” Mmmmhmm. Wish people could just be transparent with themselves and their audiences.

  • JackbyDev@programming.dev
    link
    fedilink
    English
    arrow-up
    6
    ·
    3 days ago

    This is funny, and I do think it’s fair to take little jabs at vibe coders, but just be careful. When I was learning to play a game in the past I asked a question. People thought the answer was obvious because the rules were on the thing I was asking about, but I was so new to the game I didn’t even know what those words meant. If this was any other context, I’d be hesitant to give someone flak for not knowing a technical term like that. (The context being that somebody vibe coded something.)

    • YaBoyMax@programming.dev
      link
      fedilink
      English
      arrow-up
      15
      ·
      2 days ago

      On the contrary, the borrow checker is basically the first thing you learn about when writing in Rust as it’s the primary “gimmick” of the language. Anyone writing a non-trivial program should have at least heard the term before, even if they don’t fully understand how it works.

    • hirihit640@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 days ago

      but I was so new to the game I didn’t even know what those words meant

      There’s nothing wrong with being new to something. But you shouldn’t be new to rust and releasing an app. Normally by the time you’ve written such an app you would be familiar with rust, but vibe coding allows you to bypass that wall

      • JackbyDev@programming.dev
        link
        fedilink
        English
        arrow-up
        4
        arrow-down
        1
        ·
        2 days ago

        Eh, I don’t really see a problem with releasing an app before you “should” release one. I don’t think the world improves by discouraging amateurs from sharing their work. Now whether they actually try to learn and grow or just keep vibe coding, who knows.

        • hirihit640@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          6
          ·
          2 days ago

          I can see that actually. I guess the post points out two things:

          1. the dev being a a bit deceitful, downplaying their use of AI when clearly the project is like 90% AI
          2. the community being frustrated by the lack of quality signals in the new world. Previously programming took a lot more effort, so just the existance of an app already meant that the dev was mildly competent. And at the very least it meant that the dev could fix and maintain the app when something broke. Now those trust signals are gone.
  • floofloof@lemmy.ca
    link
    fedilink
    arrow-up
    40
    arrow-down
    1
    ·
    4 days ago

    This is the new normal, it seems. My developer colleagues are bragging about how long it has been since they wrote a line of code.

    • uuj8za@piefed.social
      link
      fedilink
      English
      arrow-up
      23
      ·
      3 days ago

      Same.

      They always say that so proudly too. “It was all the AI bros!”

      me staring at the mountain of shit they just plopped in front of me

      Yes, I can tell.

      • forkDestroyer@infosec.pub
        link
        fedilink
        English
        arrow-up
        12
        arrow-down
        1
        ·
        3 days ago

        Devs on my team are straight up saying in the sprint retros that the code is slop and needs to be modified after AI makes the suggestion. Our repo is being flooded with garbage that works out of the gate but costs so much extra to troubleshoot when it fails.

        • Azzu@leminal.space
          link
          fedilink
          arrow-up
          4
          arrow-down
          1
          ·
          3 days ago

          You’re using the wrong language. If it fails, it never worked out of the gate. You should say that it seemed like it’s working, but never actually did.

    • criss_cross@lemmy.world
      link
      fedilink
      arrow-up
      15
      ·
      3 days ago

      My favorite is seeking feedback on reviews on stuff we own and people not responding and being like “I’m sorry I had Claude create 500+ PRs I can’t possibly respond to everything”

      You don’t think there’s a problem with that!?!?

    • four@lemmy.zip
      link
      fedilink
      English
      arrow-up
      7
      ·
      3 days ago

      Sometimes I lament how long it has been since I wrote a single line of code, because I had to do reviews, testing, management, etc.

      I guess some of us like the aspect of coding (as in writing code), while others only like the results (be it the product or the pay)

      • floofloof@lemmy.ca
        link
        fedilink
        arrow-up
        9
        ·
        edit-2
        3 days ago

        Yes, I have always enjoyed trying to create elegant architecture and code, more than I get satisfaction from the end result. I’ve always found it frustrating how many colleagues were prepared to throw together any old junk as long as the right thing came out in the end. On the positive side, maybe the AI does raise the quality of what some of them contribute.