Earlier quoted context omitted.
How hard are you looking? Facebook, Dropbox, Uber, Apple and literally thousands of other companies, big and small, use Go.
And those companies generally use C++, Java, etc. in a much larger capacity.
Rob Pike interview
241–250 of 273 posts
Re: Rob Pike interview
#242Re: Rob Pike interview
#243Earlier quoted context omitted.
DropBox: https://news.ycombinator.com/item?id=11284051 Their switch from Python to Go was pretty well documented on their engineering blog, but I can't find it, other than comments on HN like the one above.
They are also using Rust nowadays. Just like they use JavaScript, Swift, Java and Kotlin for mobile development.
Re: Rob Pike interview
#244Earlier quoted context omitted.
I disagree. I've noticed that a lot of infra tools that would have been written in Python 5 years ago are now in Go. I know Docker is written in Go, and I believe the Kubernetes ecosystem uses it heavily, so those are compelling evidence for Pike's argument by themselves.
Kubernetes was prototyped in Java and it isn't as if the Go rewrite was without pain. "The clusterfuck hidden in the Kubernetes code base" https://archive.fosdem.org/2019/schedule/event/kubernetesclu... Also they are quite heavy users of //go:generate.
At least, I think, k8s proves the ability of Go runtime.
Re: Rob Pike interview
#245Earlier quoted context omitted.
I write Go daily, and I don't think CSP really panned out. For most applications, I find it's much easier to use a mutex and standard threading tooling than channels/CSP. That might be an artifact of how channels are implemented and their many hidden error cases--perhaps a better channel implementation could change the calculus. There are lots of reasons to prefer Go to Rust IMO, but I don't think CSP is among them.
> For most applications, I find it's much easier to use a mutex and standard threading tooling than channels/CSP It's easier to write code with standard threading tooling but I think CSP is much, much easier to debug and avoid deadlocks.
This has (still to my surprise) not borne out in real-world cases, at least to the extent Go channels "do CSP".
https://blog.acolyer.org/2019/05/17/understanding-real-world...
Re: Rob Pike interview
#246Go is C for the cloud.
Re: Rob Pike interview
#247Go is the language that made me realize I’m not much of a production quality software engineer. Normally I would be quite happy riffing with ideas in Ruby or Python, and just running my code and iterating trying to figure out what to do. When I tried this in Go, every time I wanted to change the shape of my code to try doing things slightly differently I had to do a lot of work to get the code to compile again. I fee…
Don't beat yourself up for that. I tried Go sometime back (year or so may be) and found it an awkward language. It probably has its own design philisophy may be that I missed. Things like lack of generics and type system makes you repeat things quite a lot (e. g. It was pretty impossible to write a true ORM or a DI system in go). I found the interface system quite awkward in that types implicitly implement an interfa…
Re: Rob Pike interview
#248Re: Rob Pike interview
#249Earlier quoted context omitted.
Kubernetes was prototyped in Java and it isn't as if the Go rewrite was without pain. "The clusterfuck hidden in the Kubernetes code base" https://archive.fosdem.org/2019/schedule/event/kubernetesclu... Also they are quite heavy users of //go:generate.
It is true that the k8s project uses many Java patterns, and this really hurts the readability, but there are also many leaf great packages in Go style in the code base. At least, I think, k8s proves the ability of Go runtime.