Live data from Hacker News

New case studies about Google’s use of Go

opensource.googleblog.com

111–120 of 269 posts

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

#111
post #94

Go is super productive. My day-to-day responsibilities include development in .NET and Go. A full day working in Go is like a having a pleasant day off. On the other hand, .NET is so cumbersome, complex and verbose (I've been using it since its inception), that I'd rather abandon it for good if possible.

What kind of development do you do if you don't mind me asking?

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

#112
post #51

Earlier quoted context omitted.

Whatever your opinion of the user-facing features of Google, it is true that you would not have access to most of them if Google didn't have deep skills in large-scale systems programming which allows them to whip up products that nobody else could afford to offer. How do you think they are able to offer infinite jpeg storage to every human, for free?

> infinite jpeg storage to every human, for free? How does one get free infinite jpeg storage from Google? Way back when I had Picasa and I'm 90% sure there was a paid tier. I recall hearing something about Google offering free image storage to Google Pixel owners but that is a far cry smaller number of people than "every human" and the purchase price of a Pixel device isn't free.

> How does one get free infinite jpeg storage from Google?

Store your images at photos.google.com. It is a free service with unlimited storage quota.

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

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

Clojure has core.async heavily inspired from go.

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

#114
post #74

Earlier quoted context omitted.

All backend systems at save a few minor exceptions are written in Go :)

This isn't true at all. Google still runs a lot of backend on Java, for example.

And their backends in C++ dwarf Java and Go backends combined.

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

#115
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 lit…

map/filter and sum types are not about "fun", they're about correctness and expressiveness.

map/filter and their equivalent loops are both perfectly readable, but the latter involves more boilerplate.

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

#116

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…

There's a Serbo-Croatian proverb: "what you don't have in head you have in feet." That is, what you can't do by thinking a little bit means you must do by expending pointless effort instead.

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

#117

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…

Besides all you said, Discord client is electron based bloated software. So it just seems a case when some engineers itching to write Rust and decided to make virtue out of it.

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

#118
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…

TS and Golang aren't comparable. I use both and I've never had a case where I needed to decide between the two. Golang is a high performance, modern language without the low-level or legacy headaches of comparably performant languages. Golang was written for an era where network communication and concurrency are commonly necessities and those use cases feel very natural. Typescript is JS (a conversation ending advantage in many cases) and so the concurrency model is amazing in some cases (e.g. when most of the work is async stuff like API calls) and pretty terrible in others (parallelizable computational work).

Golang was designed for getting shit done. If you are a big believer in OOP, then Golang feels underfeatured. But if you don't really care about OOP and you just want some of the advantages like basic inheritance, type safety, etc, Golang has everything you need to write performant, effective code quickly (there are use cases where that isn't true I'm sure, but, for me, Go's type system has been helpful and not a hinderance). There's nothing wrong with using the empty interface when you need to (any more than using any in TS, which you have to do in many applications).

I've found that Golang codebases are easy to pick up. I think everyone has some part of the Go style that they think is ugly (I 100% find append ugly), but for me this has mostly been inconsequential stuff - it has never gotten in the way of me solving business problems with high performance code. The tooling is the same (at least if you are using modules). It does its job well enough and then gets out of the way while you create business value.

I don't know your use case so this might not be relevant, but sometimes people will overuse for loops and slices when they might find it easier in Golang to pass around channels and use the pipeline pattern[1].

For me, Golang is like Python but with static typing and high performance. Fast to implement, easy to read, and focused on getting code out the door.

[1] https://blog.golang.org/pipelines

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

#119

Earlier quoted context omitted.

> infinite jpeg storage to every human, for free? How does one get free infinite jpeg storage from Google? Way back when I had Picasa and I'm 90% sure there was a paid tier. I recall hearing something about Google offering free image storage to Google Pixel owners but that is a far cry smaller number of people than "every human" and the purchase price of a Pixel device isn't free.

> How does one get free infinite jpeg storage from Google? Store your images at photos.google.com. It is a free service with unlimited storage quota.

I think it's unlimited only if you allow google to resize your images and not maintain them in the original resolution/quality.

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

#120

Earlier quoted context omitted.

Does C# rely on VS? MSBuild is separate from VS and you can use Rider (yay!) or VSCode instead of VS. The ecosystem is definitely growing in the last 5 years too since open source has been embraced by MS and the community. The major rewrite of .NET -> .NET Core and then now renaming it back to .NET again is good in that it's a much better framework now, bad in that it's turning out like Python 2 vs Python 3. Huge pro…

Generally speaking, C# relies on either third-party implementations like http://www.omnisharp.net or Microsoft distributions, which on Windows is largely distributed via Visual Studio Downloads page, including the Tools for Visual Studio package: https://visualstudio.microsoft.com/downloads/ Are there other releases of msbuild, for example? Yes: https://github.com/dotnet/msbuild/releases But are they separate from re…

As far as I know - there will be those frameworks to select:

>net5.0

>net5.0-windows

>net5.0_something

So you can use "pure" "net5.0" on Linux and generally cross-platform software meanwhile still be able to use old .NET FrameworkX winforms/wpf on "net5.0-windows".

Post reply on HN