• Windex007@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    8 months ago

    Maybe I’m missing something:

    Does type inference provide a practical benefit to you beyond saving you some keystrokes?

    What tools do you use for code review? Do you do them in GitHub/gitlab/Bitbucket or are you pulling every code review directly into your IDE? How frequently do you do code reviews?

    • John@mastodon.social
      link
      fedilink
      arrow-up
      2
      ·
      8 months ago

      @Windex007 @snowe

      Yes. Type-inference typically *knows better than me* what the types should be.

      I frequently ask the compiler what code I need to write next by leaving a gap in my implementation and letting the compiler spit out the type of the missing section.

        • John@mastodon.social
          link
          fedilink
          arrow-up
          1
          ·
          8 months ago

          @Windex007

          lexer :: Parser LexState (Vector Int, Vector Token)
          lexer = do
          (positions, tokens) <- _ nextPositionedToken

          What goes where the underscore is in the above snippet?

          • Windex007@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            8 months ago

            I’ve never used Haskell, so I can barely read this as-is.

            But sure: I have no idea, and I expect that’s your point.

            You as the writer, you don’t know either? What if I could understand Haskell, is there an option to communicate that information to me? Or is the argument that nobody but the compiler and god need know? That having an awareness of the types has no value?

            • John@mastodon.social
              link
              fedilink
              arrow-up
              1
              ·
              8 months ago

              @Windex007
              > You as the writer, you don’t know either?
              Not until the compiler tells me.

              > Or is the argument that nobody but the compiler and god need know? That having an awareness of the types has no value?
              No, I want to know, because knowing the types has value. If the compiler has inference, it can tell me, if not, it can’t.

              • Windex007@lemmy.world
                link
                fedilink
                arrow-up
                1
                ·
                8 months ago

                I recognize that truly functional languages are their own beasts, with tons of amazing features provided by a ton of academic backing.

                I will absolutely concede that I can’t speak to them with a shred of competence. I don’t know about the trade-offs and relative value propositions for pretty much anything in that space, let alone specifically w/ explicit typing.

    • snowe@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      8 months ago

      Does type inference provide a practical benefit to you beyond saving you some keystrokes?

      it’s more readable! like, that’s literally the whole point. It’s more readable and you don’t have to care about a type unless you want or need to.

      What tools do you use for code review? Do you do them in GitHub/gitlab/Bitbucket or are you pulling every code review directly into your IDE? How frequently do you do code reviews?

      I use GitHub and Intellij. I do code reviews daily, I’m one of two staff software engineers on my team. I rarely ever need to know the type, and if I do Github is perfect for 90% of use cases, and for the other 10% I literally click the PR button in intellij and open up the pull request that way. It’s dead simple.

      • Windex007@lemmy.world
        link
        fedilink
        arrow-up
        1
        arrow-down
        2
        ·
        8 months ago

        So you’re saying that for you, not only do you generally not see value is knowing types, but that them being explicitly defined is DETRIMENTAL to your ability to read the code?

        For me, it’s like if I whip open a recipe book and see tomato sauce, dough, cheese, and pepperoni are the ingredients. Before the recipe details specifically how they are combined, I have a pretty good context from which to set expectations based on that alone. It’s a cheap way to build context.

        But I don’t think you’re all lying. And you are very likely not all incompetent either. I wish I could sit down with you and have you show me examples of code where explicit types are detrimental to readability, so I could examine if there are cases that exist but are somehow being mitigated by a code style policy that I’m taking for granted.