• space_comrade [he/him]@hexbear.net
      link
      fedilink
      English
      arrow-up
      20
      ·
      1 year ago

      From what I’ve heard from Google employees Google is really stringent with their coding standards and they usually limit what you can do with the language. Like for C++ they don’t even use half the fancy features C++ offers you because it’s hard to reason about them.

      I guess that policy makes sense but I feel like it takes out all the fun out of the job.

      • Sloogs@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        9
        ·
        edit-2
        1 year ago

        Just about any place I know that uses C++ also does that with C++ so that’s nothing unusual for C++ specifically. It’s too big of a language to reason about very well if you don’t, so you’ve gotta find a subset that works.

        • skeletorsass [she/her]@hexbear.net
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          Too many patterns. If you do not do this every author will have a different use of the language and you will have to read a book of documentation each time you change files.

    • philm@programming.dev
      link
      fedilink
      arrow-up
      18
      ·
      1 year ago

      Is this a hard error? Like it doesn’t compile at all?

      Isn’t there something like #[allow(unused)] in Rust you can put over the declaration?

      • flame3244@lemmy.world
        link
        fedilink
        arrow-up
        27
        ·
        1 year ago

        Yes it is a hard error and Go does not compile then. You can do _ = foobar to fake variable usage. I think this is okay for testing purposes.

          • flame3244@lemmy.world
            link
            fedilink
            arrow-up
            2
            arrow-down
            1
            ·
            1 year ago

            Worse than not having a unused variable check at all? Dunno, the underscore assignment are very visible for me and stand out on every code read and review.

            • AeonFelis@lemmy.world
              link
              fedilink
              arrow-up
              13
              arrow-down
              2
              ·
              edit-2
              1 year ago

              Yes, worse, because now if you want to use the underscore assignment to indicate that you really want to discard that variable - it gets confused with underscore assignments that were put there “temporarily” for experimentation purpose.

              • merc@sh.itjust.works
                link
                fedilink
                arrow-up
                9
                ·
                1 year ago

                Exactly.

                Say I’m having some issue with a function. I comment out half the function to see if that’s where the weirdness is. Golang says “unused variable, I refuse to compile this dogshit!” I completely fool Golang by just using _ = foo. Yes, I was correct, that’s where the problem was. I rewrite that section of the code, and test it out, things work perfectly. Only now, it turns out I’m not using foo anymore, and Golang has no idea because I so cleverly fooled it with _ = foo.

                Now, something that could be caught by a linter and expressed as a warning is missed by the language police entirely, and may make it into production code.

                Police the code that people put into a repository / share with others. Don’t police the code that people just want to test on their own.

        • nomadjoanne@lemmy.world
          link
          fedilink
          arrow-up
          8
          ·
          1 year ago

          Ew, that’s awful. Go is not one of my programming languages but I had always held it in high esteem because Ken Thompson and Rob Pike were involved in it.

          • merc@sh.itjust.works
            link
            fedilink
            arrow-up
            6
            arrow-down
            1
            ·
            1 year ago

            That’s the main reason it has had any success. It’s not that it’s a good language, it’s just that it has good references.

          • flame3244@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            Honestly, it does not happen often that I have a ln unused variable that I want to keep. In my mind it is the same thing when wanting to call a function that does not exists. Also my editor is highlighting error Long before I try to compile, so this is fine too for me.

        • AstridWipenaugh@lemmy.world
          link
          fedilink
          arrow-up
          5
          ·
          edit-2
          1 year ago

          The underscore is used in production code too. It’s a legitimate way to tell the compiler to discard the object because you don’t intend to use the pointer/value.

    • flame3244@lemmy.world
      link
      fedilink
      arrow-up
      8
      ·
      1 year ago

      I think this is a good thing. The styles are just opinions anyway and forcing everyone to just follow a single style takes a lot of bikeshedding away, which I really like.