• PeriodicallyPedantic@lemmy.ca
    link
    fedilink
    arrow-up
    2
    ·
    24 hours ago

    Why did you even bring up AI? IDEs have been able to generate equality functions for decades without AI.

    It’s kinda neat to have this defined directly in the language so that compilers can implement it, but creating equality function is so low effort that this doesn’t really seem like a big deal.

    Like, you define the members in a class, then you tell your IDE to generate getters, constructor, equals, hashcode, etc all in like 5 seconds.
    I like it, it’s nice when the language itself defines reasonable defaults for things, but realistically you’re saving yourself a few seconds of effort.

    • Mia@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      7
      ·
      23 hours ago

      Yeah but if the class changes you need to update everything, you got all that boilerplate taking up space for no real reason, etc…

      The Rust way’s just a lot cleaner imo.

      • PeriodicallyPedantic@lemmy.ca
        link
        fedilink
        arrow-up
        1
        ·
        12 hours ago

        It’s like 5 seconds to regenerate it. Boilerplate doesn’t matter, just collapse it. The only real issue is remembering to update it, if you make a change.

        Like I said, I prefer for rust does it, it’s just not a big deal

    • words_number@programming.dev
      link
      fedilink
      arrow-up
      3
      ·
      22 hours ago

      Isn’t it obvious? More code to skim, scroll over and maintain if something changes. If you add a struct field, your manual EQ implementation still compiles and seems to work but is wrong and will lead to bugs. Yes, solving this for 99,999% of cases with an attribute is just far superior and does make a difference (while keeping it easy to manually implement it if needed). Hash and Ord and some other traits can be implemented in a similar fashion btw…

      • PeriodicallyPedantic@lemmy.ca
        link
        fedilink
        arrow-up
        1
        ·
        12 hours ago

        I said it was better, just not much better.

        The maintenance costs of equals is nearly zero. Scrolling over boilerplate seems like a real stretch, like saying a novel with a picture every chapter is harder to read.

        I like that you can’t accidentally forget to update it, which is kinda nice but is rarely a concern.
        And it’s a bit more readable, which is nice.
        It’s better, but folks are talking like it’s Super Jesus and I think it’s more like finding a dollar in the parking lot.