Comments

You must log in or register to comment.

twovests wrote (edited )

I agree, and feel like Go was meant to solve problems Google had.

You have to explicitly pass and handle your own error stack, you can not have unused code, etc. It's such a pain to write and iterate in.

When I use Go, every weird thing eventually clicks into place when I imagine a first-year Google SWE writing it. It instills cultural values into compilation errors.

With Rust, all the weird things click into place, but in a way that feels empowering and not alienating. The x = match y { Ok(T) => {...}, None => {}} used to feel so alien and weird, but now it feels like a powerful incantation that all my thoughts can fit into.

There's this strange parallel. With Go, all the "clicks" were like the snapping of a bone. With Rust, all the "clicks" were like the popping of an estradiol bottle

6

twovests wrote

ya, what i mean is, i think you gotta:

  1. write val, err := something() and use err to build your own stack trace
  2. make sure something() returns that err in the first place, if you wrote it

otherwise you don't get a stacktrace when something() fails.

i'm not confident about this, because i can't imagine Go reaching any acclaim while being so hilariously designed. but "Errors are values" so maybe we are right and go is bad

2

flabberghaster OP wrote

Oh, yeah. That's true. I have so much problems debugging go code because every crash is like, "the program the an unhandled error at like 123" and then you look at like 123 and it's like

if err := some_call() {
    panic("some_call failed!");
}

You just hid the stack trace that tells me what went wrong!!!

2

twovests wrote

I much prefer Every Other Language, where you get a stack trace that runs into the library code!

something like

some_call() failed at call another_call(x, y, z)

another_call(x,y,z) failed at internal_library(x[123])

internal_library.c failed on line 1025: index 123 is out of bounds for array x
2

twovests wrote

Same situation! It's a bit more boilerplate on everything I write, but the main problem is not everyone does it.

Thankfully, now nobody writes Go at my work (^:

Unthankfully, we're language-shy because of it, lol

2