Live data from Hacker News

Why people in Google hate Go?

news.ycombinator.com

101–110 of 144 posts

Re: Why people in Google hate Go?

#101
post #6
post #4

Go isn't a serious language for large systems. The language allows writing shitty code and the community has largely adopted that. Go fanatics will hate this, but you simply can't compare it with the ability to write and maintain in languages like Java.

I'll bite. Why can't you compare it? Is it the class/function on struct thing? Generics? Go-routines not threads? Rob Pike did say once that the GC is deliberately not tunable because a JVM knob-twiddler should not be a job title.

Many reasons including:

* Poor modeling ability (lack of default interface methods, no records, pattern matching, exhaustiveness checks, etc.).

* Error handling is error prone. * Generics are half baked.

* No short hand syntax for passing functions as lambdas.

* No annotations.

* Implicit interfaces make it hard to navigate large code bases because it is very easy to accidentally implement another interface. There are better solutions for the problem they tried to address with structural interfaces. * No string templates.

* The GC not being tunable does not obviate the use cases where it needs to be. Furthermore, Java's ZGC only has a couple of knobs anyway, while giving you the option to use a more tunable GC when your use case calls for it. golang's GC is only tuned for latency at the expense of throughput.

* goroutines are half baked, see Java's virtual threads + structured concurrency for a more manageable approach.

* Observability way superior on the JVM.

* No proper enums.

* No const/final variable declarations.

* Visibility rule are crude. Only public or package private.

* Probably more things I didn't think of at this time.

Re: Why people in Google hate Go?

#102
post #87
post #74

Earlier quoted context omitted.

I don’t know when you last tested the start-up time, but we significantly improved it in HTTPie CLI 3.0 [0]. Now it’s still slower by ~0.1s. $ time http --version 3.2.2 real 0m0.113s user 0m0.087s sys 0m0.020s $ time xh --version xh 0.18.0 -native-tls +rustls real 0m0.007s user 0m0.002s sys 0m0.002s [0] https://httpie.io/blog/httpie-3.0.0#speed-ups

> Now it’s still slower by ~0.1s Not for me. Printing HTTPie's version takes longer than to finish a real http request with xh. I suspect it's because I'm testing it on a relatively old server where the differences are even more pronounced. [link redacted] I'm using HTTPie 3.2.1 because Arch doesn't have the latest version available but based on the release notes that shouldn't make a difference.

Gotcha. Would you mind checking if you happen to have PyOpenSSL installed inside the Python environment HTTPie runs from?

Re: Why people in Google hate Go?

#103
post #4

Go isn't a serious language for large systems. The language allows writing shitty code and the community has largely adopted that. Go fanatics will hate this, but you simply can't compare it with the ability to write and maintain in languages like Java.

OOP languages like Java are not considered to be good.

Considered by whom?

Re: Why people in Google hate Go?

#105
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?

> No OO

Are you referring to Object Oriented programming? And if so, why not?

Re: Why people in Google hate Go?

#106
post #96
post #83

Earlier quoted context omitted.

Proper enumerations, sum types, pattern matching, exceptions, default interface implementations, dynamic loading, class loaders, annotations, compiler plugins,...

You’re loading your ideas of other languages into Go and with this current Go team that’s wishful features

Not at all, I rather use other languages instead of dealing with frustation.

I apreciate what Go offers as a better C alternative, similar to Limbo's role in Inferno, and that is the only thing I will advocate Go for.

Re: Why people in Google hate Go?

#107
post #83

Earlier quoted context omitted.

Proper enumerations, sum types, pattern matching, exceptions, default interface implementations, dynamic loading, class loaders, annotations, compiler plugins,...

Java sum types and pattern matching are almost impossible to use in practice, sadly. Exceptions aren't a good thing, it's only good that they're typed. Go has exceptions too, they're just used rarely. The rest is not very interesting or particularly complex.

Word salad, hand waving that Java has indeed a much better type system.

Re: Why people in Google hate Go?

#108
post #95
post #41

Earlier quoted context omitted.

Docker (originally written in Java until Go advocates took over), and k8s are what made it popular. Now it is kind of unavoidable in DevOps space for some cenarios. My only complaint is their approach to language design. Inferno with Limbo, Android, Windows Phone, show that there is GC hate, and shipping products to millions of users.

If Docker was in Java it would have been still born / Java universe only. I don't get the GC hate. If its done properly (like Go) its invisible for 99% of applications and dramatically simplifies things like business logic that don't need to be that complicated or fast. The real culprit is usually Java's slow startup and memory bloat from the JVM.

Nah, that is what anti-Java folks wish for.

Java is so bad that Kubernetes + WASM containers is basically redoing application servers 20 years later.

Re: Why people in Google hate Go?

#109
post #107

Earlier quoted context omitted.

Java sum types and pattern matching are almost impossible to use in practice, sadly. Exceptions aren't a good thing, it's only good that they're typed. Go has exceptions too, they're just used rarely. The rest is not very interesting or particularly complex.

Word salad, hand waving that Java has indeed a much better type system.

It’s a little better, for sure. It’s nowhere near something sane like OCaml or Rust.

I don’t particularly like Go or Java.

I don’t see what salad has to do with anything I said. Go does have exceptions and unlike Java, they are untyped and rarely used. They’re not great in either language.

Re: Why people in Google hate Go?

#110
post #102
post #87

Earlier quoted context omitted.

> Now it’s still slower by ~0.1s Not for me. Printing HTTPie's version takes longer than to finish a real http request with xh. I suspect it's because I'm testing it on a relatively old server where the differences are even more pronounced. [link redacted] I'm using HTTPie 3.2.1 because Arch doesn't have the latest version available but based on the release notes that shouldn't make a difference.

Gotcha. Would you mind checking if you happen to have PyOpenSSL installed inside the Python environment HTTPie runs from?

I did not have it installed. Installing it did not make a difference. If it's of any help, here's a profile generated using cProfile. [link redacted]
Post reply on HN