How is Go used at Google? by @rlove
Answer by Robert Love:
I'm hard pressed to beat Rob Pike's talk, which covers exactly this question directly from the mouth of the expert.
is also a great talk. It covers moving our download system from C++ to Go.
Go is designed specifically as a systems programming language for large, distributed systems and highly-scalable network servers. In that vein, it replacesand in 's software stack. Many teams are looking at building new servers in Go; some are even considering migrating existing codebases. Some of the Google technology you use everyday has components written in Go.
I view Go as a general-purpose replacement for C++ for systems tasks, but where it shines most is building highly-scalable I/O systems. The use of Go Routines and Channels can replace 100s and even 1000s of lines of C++ managing threads, callbacks, and state machines with 10s of lines. It really is a nice language for such tasks.