In Rust, if I see a call to `foo::bar::baz()`, I instantly know that `foo/bar.rs` or `foo/bar/mod.rs` (and only one will ever exist) contains either a `fn baz()` (in which case I'm done) or a `pub use spam::baz;` (in which case I can follow the same algorithm again).
In Go, if I see a call to `import ("foo/bar"); bar.baz()`, all I know is that ONE of the files in the folder `foo/bar` contains a function `baz`, with no direction on which it is.
> There's 1 dependency management tool though. It's go modules. Unless you live 2 years in the past?
As I said, 99% of my interaction with Go is reading the code that other people wrote. I don't make the decisions about which dependency management tools they use.
> You just right click in VS Code and click "Go to implementations". Or if you use Goland it's right there on the gutter.
I use Emacs, but VS Code still uses the same broken Gopls.
> Reading comments like this really makes me wonder if anyone complaining about Go has actually used it.
Can't really say I disagree, I guess.