Golang accusations with facts

What do we think, as a community, about these accusations with facts in https://fasterthanli.me/blog/2020/i-want-off-mr-golangs-wild-ride/?

1 Like

It’s a rant about some decisions he disagrees with and some less well designed packages that do odd things. Possibly I find it funny that his beef with go is that it’s not as simple is touted in all corner cases or under the hood, and the solution is rust. Okay then.

2 Likes

I agree with calmh. I do want to learn Rust because I’m curious and eager to learn about the ownership model and the type system (I love C#'s generics, I wish its pattern matching was better; it seems Rust may already have that, etc.). That being said, I think his complaints about Go are just like all the other complaints about “Language A is better than B because it has Feature X.”

Rust has generics and Go doesn’t. If your project needs generics (or if not having them makes your project too difficult) or rely on interface{} too much, then either you need to rethink your problem, or you need to use another language.

In Rust, it seems file metadata only allows you to check or modify a file’s read-only flag and that you have to use OS-specific packages/modules/crates/whatever they are and use compile-time checks to access platform-specific metadata. I understand that approach, but consuming that API is more complicated in user code. It seems not better, nor worse, but “simpler” to me to expose one API and implement it on platforms that support it and implement it as a no-op on platforms that don’t. :man_shrugging:

If you like Rust, use Rust. Don’t beat up Go’s type system/feature set for not being like Rust’s if Go doesn’t even want to be like Rust! I could just as easily say Rust’s Arc type gets C++'s unique_ptr semantics wrong!

2 Likes

I’m mostly OK to have the paths as strings with all the limitations that it implies.

However all these packages imported is a huge issue to me.

About a month ago, a colleague asked me to add a google cloud auth query in our repo. Dozens and dozens of packages downloaded. Our CI now takes 9 minutes where it was 4 minutes. The size of the binary also went from 10M to 29M. All this for adding a poor query…

It’s not really a language problem, more of a google cloud repo problem or tooling problem. But it’s concerning.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.