Live data from Hacker News

Why people in Google hate Go?

news.ycombinator.com

61–70 of 144 posts

Re: Why people in Google hate Go?

#61
IMHO the hate comes from golang looking more like a better python than a better C.

Onboarding of new people is extremely fast, but lack of features will result in seniors hitting a wall on what they can do and guarantee with the language.

While go tooling great, you still have to test for most of the edge cases that C and python have: nullpointers, lack of proper enums/typesafety. This is commonly reflected in the tests that have to check for lots of trivial things.

Rust is much more difficult to learn, but the amount of things you need to test is drastically reduced, and seniors appreciate that.

What we see in our company is that juniors will find go wonderful, seniors dream of switching to Rust.

The hate probably comes from high expectations (especially coming from python/C), followed by hitting a feature wall due to how opinionated (and slow to adopt new features) golang is.

Re: Why people in Google hate Go?

#62
post #22

Earlier quoted context omitted.

Except when you suddenly do need performance and predictable latency but all your software is written in python. Its always funny how these performance requirements just creep up on you like that.

C# is GCed but has 'unsafe' blocks.

Yup, and (monomorphized) struct generics, first-class SIMD vectors and ability to transparently work with memory ranges because Span can also wrap T* + Length from unmanaged code, which lets you directly plug whatever data you got from C/C++ dependency into most CoreLib APIs.

In this regard, Go is far inferior as a systems programming language.

Re: Why people in Google hate Go?

#63
post #53

Earlier quoted context omitted.

Java also has null and overall a weak type system. They're pretty close in that respect, actually.

From the point of view from Go folks, we need a PhD for mastering Java's type system.

It has slightly more expressive generics, but otherwise no more complex overall. And no more useful, except perhaps for typed errors.

The biggest cause of bugs in Go I find is the weak type system. Nulls, untyped (and overly verbose) errors and the lack of sum types are a big problem.

Re: Why people in Google hate Go?

#64
post #33
post #11

Earlier quoted context omitted.

The same can be said about Rust: its popularity exceeds its scope, because 99% of applications I see that are written in Rust are better off written in a GCed language.

As fast as C but with correctness, Rust kind-of owns that space (not a big fan personally).

> Rust kind-of owns that space

True. But it's a pretty small space to be in. And there are good reasons for that:

a) The only correctness Rust can, mostly, guarantee, is that there won't be unexpected data races or memory bugs. While this is proudly announced often and loudly, it also isn't the most common problem in code...logic bugs...against which the rust compiler can do as little as any other language.

b) Rust can only give these guarantees because it is ALOT more complex than C. That means harder to read, harder to write, harder to learn. And developer time matters. Alot. If I can already ship features, while my competition is still stuck in onboarding, it won't matter if my code has the odd memory bugs...those can be fixed...I will already have the market to myself.

Re: Why people in Google hate Go?

#65

Earlier quoted context omitted.

Can you give an example of 'shitty code'? We've got murmurs of Go being adopted by some teams so if you have first hand experience it'd be really useful

Single letter variables. A terrible pattern the go community picks up.

Is that really the best argument against Go lmao ?

Re: Why people in Google hate Go?

#66
post #33

Earlier quoted context omitted.

As fast as C but with correctness, Rust kind-of owns that space (not a big fan personally).

> Rust kind-of owns that space True. But it's a pretty small space to be in. And there are good reasons for that: a) The only correctness Rust can, mostly, guarantee, is that there won't be unexpected data races or memory bugs. While this is proudly announced often and loudly, it also isn't the most common problem in code...logic bugs...against which the rust compiler can do as little as any other language. b) Rust c…

> a) The only correctness Rust can, mostly, guarantee, is that there won't be unexpected data races or memory bugs. While this is proudly announced often and loudly, it also isn't the most common problem in code...logic bugs...against which the rust compiler can do as little as any other language.

A powerful type system helps quite a lot with logic bugs actually.

Re: Why people in Google hate Go?

#68
post #66

Earlier quoted context omitted.

> Rust kind-of owns that space True. But it's a pretty small space to be in. And there are good reasons for that: a) The only correctness Rust can, mostly, guarantee, is that there won't be unexpected data races or memory bugs. While this is proudly announced often and loudly, it also isn't the most common problem in code...logic bugs...against which the rust compiler can do as little as any other language. b) Rust c…

> a) The only correctness Rust can, mostly, guarantee, is that there won't be unexpected data races or memory bugs. While this is proudly announced often and loudly, it also isn't the most common problem in code...logic bugs...against which the rust compiler can do as little as any other language. A powerful type system helps quite a lot with logic bugs actually.

> A strong type system helps quite a lot with logic bugs actually.

A static type system does, and all the languages that Rust has to compete with in its space, have one.

Re: Why people in Google hate Go?

#69
post #66

Earlier quoted context omitted.

> a) The only correctness Rust can, mostly, guarantee, is that there won't be unexpected data races or memory bugs. While this is proudly announced often and loudly, it also isn't the most common problem in code...logic bugs...against which the rust compiler can do as little as any other language. A powerful type system helps quite a lot with logic bugs actually.

> A strong type system helps quite a lot with logic bugs actually. A static type system does, and all the languages that Rust has to compete with in its space, have one.

Go's type system is much less expressive and it has null pointers. An entire giant class of bugs.

Re: Why people in Google hate Go?

#70
post #32
post #5

Go puzzles me. It's slower than C/C++/Rust and GCed, so not really suited for performance critical stuff. No OO so not really suited for larger complex applications. So for smaller not-performance-critical programs, why not Python, Typescript etc? It seems that its popularity exceeds its scope, or am I missing something?

Why does it need to be the best in one single metric when it can be great in many? It is an order of magnitude faster than Python. So it is well suited for performance in many cases. It is a lot easier to pick up than C/C++. So it is well suited for smaller programs. I can see Go as a very good middle-ground.

> It is a lot easier to pick up than C/C++.

I would say, "it is a lot easier to pick up than C++" as the language specification is much smaller. I wouldn't be so sure about the comparison to C, though.

Post reply on HN