Live data from Hacker News

New case studies about Google’s use of Go

opensource.googleblog.com

61–70 of 269 posts

Re: New case studies about Google’s use of Go

#61
post #5

> Looking back from 2020, Go has succeeded in both ways: it is widely used both inside and outside Google, and its approaches to network concurrency and software engineering have had a noticeable effect on other languages and their tools. Don’t know much about go myself, but I’m interested in examples of this.

Arguably opinionated formatters like prettier and black are a response to gofmt.

Benefits of this for large system projects cannot be understated. The notion that there's a many-to-one mapping between allowed representations of the source code and a canonical representation is very smart because it enables bidirectional preferences; not only can the main source make assumptions about code format independent of individual user preferences, but individual users can have preferences independent of the main source; code that is in a canonical format is easier to apply custom formatting to.

In addition, a canonical format makes it slightly easier to do plaintext search indexing, so you can get some of the benefits of having the code parsed into a full AST without needing to do that parsing.

Re: New case studies about Google’s use of Go

#62
post #57
post #24

Earlier quoted context omitted.

Google Translate, for example, is amazing.

Eh. I enjoy the variety of languages of GT, but the quality is (imo) better with DeepL[1], and Yandex Translate[2] has some minor languages of Russia and ex-USSR which either aren't supported by Google or aren't supported on the same level. E.g. Bashkir and Mari. GT is still very impressive, don't get me wrong. But it has some strong competitors. [1] https://www.deepl.com/translator [2] https://translate.yandex.com/

Thanks, didn't know good alternatives existed.

Re: New case studies about Google’s use of Go

#63
post #43

Earlier quoted context omitted.

I think that's an example of a system where the performance demands weren't high enough to justify using C++. There are lots and lots of applications where the overall architecture can't take advantage of the speed of C++, but I think there's no question that the peak performance of C++ far outshines the abilities of Go. Taking an example from the article, parts of Google's indexing pipeline are now in Go, but nobody…

Go is basically almost as fast as C++.

And cat food is "basically" pâté. The Go toolchain lacks virtually all of the optimizations that a C++ compiler would employ in an optimized build and the Go toolchain also lacks all of the ways you'd achieve peak optimization for C++, such as profile-guided optimization and link-time interprocedural optimization.

These programs are are not even peak optimized but the C++ version still wins every case by between 10% and 1000%.

https://benchmarksgame-team.pages.debian.net/benchmarksgame/...

Re: New case studies about Google’s use of Go

#64
post #4

I tried very hard to bring go into my previous employers environment, but it was all for naught. They are too bought into the JavaScript stack. Case studies like this would have been super helpful in trying to make my claims.

Server-rendering React and puppeteer are the only two exceptions where I would pick nodejs over Go.

Re: New case studies about Google’s use of Go

#65
post #60
post #48

Earlier quoted context omitted.

Green threads without explicit language syntax for yielding - called goroutines influenced similar features in Kotlin. Unfortunately Kotlin is bound to working inside JVM and had to introduce “suspend” keyword. This is a friendlier world to work in than explicit green threads using keywords like async/await in other languages (Dart, Rust, JS)

Clojure has goroutines on the JVM with core.async, no yield needed :)

You have to explicitly call out your async blocks though -- even worse!

Re: New case studies about Google’s use of Go

#66

Kinda tired of the proliferation of languages coming out of Google, whether they actually created them or not. If Go is so great, why was Kotlin released four years later and made the standard on Android? It's annoying enough to have to use Swift and Kotlin for iOS/Mac vs. Android. Now Go? What happened to Dart? Then there's Rust. What about next week?

Different use cases.

Golang is made for simple deployments, mostly services that need to scale, stuff you'd previously had to use something like C++ or Java for.

Dart is mostly relevant if you're building apps with Flutter.

Kotlin isn't Google's creation, they just recommend it for developing native Android apps instead of Java.

Re: New case studies about Google’s use of Go

#67

Kinda tired of the proliferation of languages coming out of Google, whether they actually created them or not. If Go is so great, why was Kotlin released four years later and made the standard on Android? It's annoying enough to have to use Swift and Kotlin for iOS/Mac vs. Android. Now Go? What happened to Dart? Then there's Rust. What about next week?

> What happened to Dart?

Dart is one of the three officially supported and approved languages of Fuchsia.

https://fuchsia.dev/fuchsia-src/contribute/governance/policy...

The only language that came out of Google that people have a right to be upset about is PromQL. That's an abomination.

Re: New case studies about Google’s use of Go

#68

Kinda tired of the proliferation of languages coming out of Google, whether they actually created them or not. If Go is so great, why was Kotlin released four years later and made the standard on Android? It's annoying enough to have to use Swift and Kotlin for iOS/Mac vs. Android. Now Go? What happened to Dart? Then there's Rust. What about next week?

Google didn't make Kotlin or Rust o_O

Re: New case studies about Google’s use of Go

#69
post #50

I absolutely love using Go. The logical flows for my programs are always so clean and easy to follow thanks to the language. Contrast to C++ in which spaghetti and magic is basically idiomatic. The only downside I can think of is that error/crash recovery is pretty tricky, but it's only really a concern if you're careless with your goroutines. Whenever I work in Go, I have a lot more confidence in the efficiency of r…

I have a love/hate relationship with Rust. I love the type system as enthusiast, but as project lead I can't justify relying on so many (partly immature) third party dependencies for business critical stuff.

This is exactly what I've been thinking.

Right now you need enthusiasts and a project that can either accept or handle the risks brought on by the immature ecosystem.

Later on, Rust will most definitely be a huge thing. It's just not the right choice for everything - even if the community has a habit of pumping out "X - but with Rust" projects.

Re: New case studies about Google’s use of Go

#70

I came to Go because some Kotlin CLI tools used too much memory and were clumsy to deploy. I'm staying for the standard lib, tooling and stability. Nothing gets out of the way better than Go.

I agree completely. It's so pragmatic. It's not sexy. It just does the damn job, and that's why I love it.
Post reply on HN