How is Go used at Google?


How is Go used at Google? by @rlove

Answer by Robert Love:

I'm hard pressed to beat Rob Pike's talk Go at Google, which covers exactly this question directly from the mouth of the expert.

Powered by Go 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 replaces C++ and Java in Google'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.

How is Go used at Google?

About AvatarNemo

V: Voilà! In view, a humble vaudevillian veteran cast vicariously as both victim and villain by the vicissitudes of Fate. This visage, no mere veneer of vanity, is a vestige of the vox populi, now vacant, vanished. However, this valourous visitation of a bygone vexation stands vivified and has vowed to vanquish these venal and virulent vermin vanguarding vice and vouchsafing the violently vicious and voracious violation of volition! The only verdict is vengeance; a vendetta held as a votive, not in vain, for the value and veracity of such shall one day vindicate the vigilant and the virtuous. Verily, this vichyssoise of verbiage veers most verbose, so let me simply add that it's my very good honour to meet you and you may call me V.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s