6
cygnus
1y

"I use Go/Rust" is the new "I use arch btw"

Comments
  • 0
    not really.

    I use arch, btw.
  • 3
    There is also:

    I use Kubernetes to run static website btw
  • 0
    I use both by the way
  • 1
    I just started learning Golang, btw.
  • 2
    In the sense that they're good and you should use them, yes. Except Go, which you shouldn't.
  • 0
    by the way, btw
  • 0
    I use neither, btw.

    But I respect Rust users.

    Go users are just Java lovers who have discovered that concurrency is sexy.
  • 1
    I use go but not rust yet. I will do my best to improve.
  • 0
    @Lensflare never written a single line of Java in my career, but love Go btw
  • 0
    @Xamenyap You would feel right at home with Java, as it has a similar philosophy about pragmatism, compromises, boilerplate and "simplicity", which means that all the good stuff from other modern languages is missing because it would supposedly confuse code monkeys.
  • 1
    @Lensflare which good stuff from other languages that Go doesn't have?
    I'm not sarcastic btw, just want to learn
  • 1
    @Xamenyap It's an unpleasantly simplistic language. Not simple (like Lua, Lisps, base Haskell), simplistic: it lacks a lot of features but still has a lot of weird unnecessary complexity in ones it does have. For years it lacked generics (which people continued to insist was fine right up until it got them), except it sort of had them for three builtin data types anyway, the general replacement being interface{} (dynamic typing) or CODE GENERATION. It has weird special-casing all over the place (e.g. make, for) and won't let you abstract and generalize things. The error handling is simply deeply ugly. Channels aren't a nice concurrency primitive and goroutines are ugly (by default, you probably don't want to just spin off a separate task which runs forever).
  • 2
    @Xamenyap generics were missing for a long time. Now it does have generics but it‘s always suboptimal when stuff gets added as an afterthought instead of being part of the original design.

    It lacks algebraic types.

    It doesn’t have non-nullable types, repeating the same mistake about null as so many other languages.

    I think it doesn’t have value types (except for primitive types), only reference types. Similar to Java.

    The default error mechanism is throwing and catching. This is probably because there is no real alternative due to the lack of algebraic types.

    There’s probably more that I forgot about.
Add Comment