Live data from Hacker News

New case studies about Google’s use of Go

opensource.googleblog.com

101–110 of 269 posts

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

#101

You can see more very exciting case studies of companies using Go here, didn't know until now Twitch or Facebook (and even Target!) uses Go a lot. https://go.dev/solutions/#case-studies

The main objective of the blog post was to signal that 3 more cases were added to the page you mentioned. So everyone that has read the submitted post has probably already seen the link in "we’ve posted sixteen case studies from end users around the world talking about how they use Go".

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

#102
post #75

While I do trust Rob Pike to not let personal biases sway his writing, I do have to wonder if the case studies weren't selecting because they were positive. So I'm curious: does anyone have a case study where using Go was a disaster? Every language has things it's good at, and things it's bad at. Where does Go not do well?

Discord abandoned Go due to GC overhead. https://blog.discord.com/why-discord-is-switching-from-go-to...

This is a puzzling decision on Discord's part, because they found the single line of code causing their problem and they didn't think to change that line of code for their own needs. Go distributions include the source for Go itself, so building your own Go binary with your own changes incorporated is dead easy. And, the change they needed is a single-line change, which means it's easy to bring that change forward as new versions of Go are released.

Discord: haha, no, that's silly! let's spend 100,000x more effort and rewrite it all in another language!

Now, before those of you who learned to argue on the internet extrapolate what I wrote and imagine that I wrote words I didn't write: I'm not saying that Go should never be abandoned for another language. I'm saying that this particular example of this particular choice puzzles me, because of the reasons stated, and ONLY the reasons stated.

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

#103
post #84

I played around with Go a while ago, and while I appreciated the approach to concurrency, I was really put off by both the boilerplate + how primitive the type system felt. Not having map and filter due to lack of generics meant writing for loops all over the place just to filter and modify arrays. Appending elements to slices felt clumsy. The type system didn't feel expressive, and I often found myself having to res…

The use of an Interface type in Go is a good sign that either the data or the logic flow isn't optimized for static analysis and optimizations.

The most common case I happen to have run across is the result of parsing data or configuration files; situations where there might be structure, but all of it is optional.

PS: Your "algebraic data types / sum types" sounds very much like interface composition, a ReaderWriter ( E.G. https://golang.org/pkg/io/#ReadWriter ) for example composes interface types.

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

#104
post #84

I played around with Go a while ago, and while I appreciated the approach to concurrency, I was really put off by both the boilerplate + how primitive the type system felt. Not having map and filter due to lack of generics meant writing for loops all over the place just to filter and modify arrays. Appending elements to slices felt clumsy. The type system didn't feel expressive, and I often found myself having to res…

This sort of comment is not really relevant to the article that was posted, which is not about Go's type system, or convincing TypeScript users to switch to Go. I'm sorry that you don't like Go's types, but I'm going to guess it's not really targeted at your needs if you are a TS user. It's okay not to use Go for your projects. But there's no need to drop your personal opinion of a language into a post about specific…

Other comments on this post:

> I absolutely love using Go. The logical flows for my programs...

> Go is super productive. My day-to-day responsibilities include...

> Nothing gets out of the way better than Go.

> Go as a new language is a mega success.

I'm guessing you're OK with these, and maybe it's just negative opinions that are irrelevant?

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

#105
post #84

I played around with Go a while ago, and while I appreciated the approach to concurrency, I was really put off by both the boilerplate + how primitive the type system felt. Not having map and filter due to lack of generics meant writing for loops all over the place just to filter and modify arrays. Appending elements to slices felt clumsy. The type system didn't feel expressive, and I often found myself having to res…

I still find the Typescript compilation time to be annoying. I rediscovered using Typescript for backend development on NodeJs and was very unpleasantly surprised by the compilation time (my only complaint).

For a project with 20-30 files and around 8 dependencies, it took 10-20 seconds to compile and 4Gb of RAM (yes I checked with tsc --listFiles that no other files were parsed).

The same in Go to compile to native would probably take <5s in my experience!

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

#106

Does Google use Go for any non-server applications? For example in Android, iOS apps, ChromeOS, Chrome browser?

Quite an interesting question. The Android GPU Inspector[1] is a desktop GUI/CLI developer tool that's written mostly in Go, but also has a bit of client/server architecture internally so I don't know how you would count it.

1: https://gpuinspector.dev/

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

#107
post #84

I played around with Go a while ago, and while I appreciated the approach to concurrency, I was really put off by both the boilerplate + how primitive the type system felt. Not having map and filter due to lack of generics meant writing for loops all over the place just to filter and modify arrays. Appending elements to slices felt clumsy. The type system didn't feel expressive, and I often found myself having to res…

I still find the Typescript compilation time to be annoying. I rediscovered using Typescript for backend development on NodeJs and was very unpleasantly surprised by the compilation time (my only complaint). For a project with 20-30 files and around 8 dependencies, it took 10-20 seconds to compile and 4Gb of RAM (yes I checked with tsc --listFiles that no other files were parsed). The same in Go to compile to native…

Super agree. Speedy compilation time of Go was my favorite feature. TS compilation is frustratingly heavy.

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

#108
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.

As a JS dev - the strength of a vertically integrated stack is high. I have a collaborative model editor which can run plugins on the model, and these plugins can be configured to run on the client or the server depending on what they do and what kind of requests they need.

This exact same language fuels my API and my client. It means I can share packages everywhere, and a problem solved once & put in a library is solved for the team

So, that said - I would also push back against introducing a new language into a stack which everyone shares knowledge of. What benefits did you propose that override such a thing? Or, conversely, why do the benefits I described above not apply to that team?

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

#109

Earlier quoted context omitted.

Discord abandoned Go due to GC overhead. https://blog.discord.com/why-discord-is-switching-from-go-to...

This is a puzzling decision on Discord's part, because they found the single line of code causing their problem and they didn't think to change that line of code for their own needs. Go distributions include the source for Go itself, so building your own Go binary with your own changes incorporated is dead easy. And, the change they needed is a single-line change, which means it's easy to bring that change forward as…

Not to mention they could’ve probably just updated their old go runtime...

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

#110
post #84

I played around with Go a while ago, and while I appreciated the approach to concurrency, I was really put off by both the boilerplate + how primitive the type system felt. Not having map and filter due to lack of generics meant writing for loops all over the place just to filter and modify arrays. Appending elements to slices felt clumsy. The type system didn't feel expressive, and I often found myself having to res…

the key is simplicity, you're complaining about language features that allow you to write "fun" code, but remember that we spend around 80% of the time reading or debugging code, the main focus of Go is about writing code that's easy to read which will allow you to scale a project or source code with more people, also remember that easy doesn't mean simple, I think these 2 talks will make you understand my idea a little bit better:

https://www.youtube.com/watch?v=rFejpH_tAHM

https://www.youtube.com/watch?v=2y0pmRJNkLA

Post reply on HN