• fuck_u_spez@lemmy.fmhy.mlOP
    link
    fedilink
    arrow-up
    3
    arrow-down
    1
    ·
    1 year ago

    … until you’ve heard of Rust :)

    (I think Go takes all mediocre language features together and makes an even more mediocre language TBH, take error handling for example, or generic programming (which I agree should be used sparingly, but is super useful if you need it))

    • Ethan@programming.dev
      link
      fedilink
      arrow-up
      2
      arrow-down
      2
      ·
      1 year ago

      I’ve heard of Rust. It sounds noisy and even more verbose than Go, which is already a fairly verbose language. I haven’t had any reason to learn Rust, so I haven’t done so. The error handling is annoying but at this point I don’t really notice it any more. And as interolivary said, Go has generics now.

      • fuck_u_spez@lemmy.fmhy.mlOP
        link
        fedilink
        arrow-up
        4
        ·
        1 year ago

        Yeah this was my initial reaction way back when I first heard of Rust as well (sometime around 2015 or so I think). TBF it’s definitely not on the same level as e.g. Haskell. But it’s generally I would say less verbose than go (or at least has verboseness where it makes sense compared to go IMHO).

        A good article about this: https://matklad.github.io/2023/01/26/rusts-ugly-syntax.html

        The generic system is also (way) less powerful compared to Rusts (The trait type system/type-classes is really a nice Haskell-inspired thing, that I don’t want to miss anymore). Also the lack of sum types and proper pattern matching makes go more verbose IMHO.

        • Ethan@programming.dev
          link
          fedilink
          arrow-up
          2
          ·
          1 year ago

          *grumble*. I dabbled in Scala a few years back and I am really grumpy every time I remember that Go doesn’t have sum types, pattern matching, and the closed union of types construction you can create with an abstract final class in Scala. I loved that last one and used the heck out of it. I would love to have a compiler-enforced guarantee that a set of types was closed and could not be extended.