Created
October 9, 2013 18:24
-
-
Save anonymous/6905817 to your computer and use it in GitHub Desktop.
The case for go (with citations!)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Team behind Go: | |
- Ken Thompson | |
- Co-Creator of Unix | |
- Co-Creator of UTF-8 | |
- Creator of 'B', the direct predecessor to the 'C' programming language | |
- Rob Pike | |
- Co-Creator of Unix | |
- Co-Creator of UTF-8 | |
- Co-Authored Practice of Programming and The Unix Programming Environment with Brian Kernighan | |
- Brad Fitzgerald (more recently) | |
- Creator of memcached | |
Adoption within Google | |
- Public projects: | |
- All db traffic for YouTube flows through a proxy system written in Go. | |
- https://github.com/youtube/vitess | |
- Rewrote the pre-cdn download server from c++ to go | |
- http://talks.golang.org/2013/oscon-dl.slide#1 | |
- The Thanksgiving interactive google logo on Google.com | |
- http://blog.golang.org/from-zero-to-go-launching-on-google | |
- Maintained ~40ms response times on the Google homepage, including jpeg encoding | |
- Used to rewrite some c++ systems | |
- http://matt-welsh.blogspot.com.au/2013/08/rewriting-large-production-system-in-go.html | |
Adoption outside of Google | |
- Over 10,000 open-source packages: http://godoc.org/-/index | |
- Over 400 contributors: http://golang.org/CONTRIBUTORS | |
- Heroku, one of the largest PaaS providers. http://blog.golang.org/go-at-heroku | |
- Cloudflare, an accelerating CDN uses Go in a variety of places. Publicly, in its local agent which is supported by dozens of hosting companies. http://blog.cloudflare.com/cloudflares-railgun-easier-than-ever | |
- MongoDB, our database provider uses go for its backup agent. http://blog.mongodb.org/post/51643994762/go-agent-go | |
- Bitly is using it to process billions(!) of messages per day. https://github.com/bitly/nsq | |
- Disqus is using it for notifications in their widely-deployed comment system. http://blog.disqus.com/post/51155103801/trying-out-this-go-thing | |
- Canonical (makers of Ubuntu) us Go in its services-coordination system (Juju). http://dave.cheney.net/wp-content/uploads/2012/08/august-go-meetup.pdf | |
- Thompson Reuters hires Go developers - http://www.gopheracademy.com/jobs/show/3 | |
- Many, many more: https://code.google.com/p/go-wiki/wiki/GoUsers | |
Tools | |
- Excellent CPU and Memory profiler: http://blog.golang.org/profiling-go-programs | |
- Race condition detector: http://blog.golang.org/race-detector | |
- Good gdb support for debugging: http://golang.org/doc/gdb | |
- Eclipse support: https://code.google.com/p/goclipse/ | |
Learning Go | |
"None of the engineers on the team have taken very long at all to come up to speed in the language; heck, even one of our interns picked it up in a couple of days." - http://bit.ly/14NxLnc | |
Easy to learn interactively: http://tour.golang.org/#1 | |
Going from Ruby to golang | |
The creator of Sinatra (the ruby framework we use) now uses Go and has released Sinatra's `Go` successor. | |
- https://github.com/bmizerany/pat and other projects https://github.com/bmizerany?tab=repositories | |
"Python and Ruby programmers come to Go because they don’t have to surrender much expressiveness, but gain performance and get to play with concurrency." | |
- Rob Pike | |
http://bit.ly/ZGHF9d | |
- Currently handling > 100 million messages / day | |
- Experienced Java programmers spent the last few years in Ruby and decided to do a rewrite in Go after evaluating Java, Scala, Node.js and Erlang. | |
"Our CPU utilization was less than 5% and the entire process started up with only a few hundred KB's of memory (on startup) vs our Rails apps which were ~50MB (on startup). Compare that even to JVM memory usage! It was night and day. " | |
http://backstage.soundcloud.com/2012/07/go-at-soundcloud/ | |
- Mainly a Ruby/Rails shop that started adding more services in Go. | |
- "An environment of shared code ownership is a perfect match for expressive, productive languages with low barriers to entry, and Go has proven to be exactly that.[...] All together, SoundCloud maintains about half a dozen services and over a dozen repositories written entirely in Go. And we’re increasingly turning to Go when spinning up new backend projects." | |
http://www.confreaks.com/videos/2461-railsconf2013-what-ruby-developers-can-learn-from-go | |
- Go Language talk at RailsConf 2013 | |
https://twitter.com/brianhatfield/status/360866306276327424 | |
- "My first major #golang service just finished 24 hours in production - outperforms the Ruby API it replaces by at least 10:1 (in servers)" - crashlytics.com | |
https://twitter.com/IvanVanderbyl/status/319002045740896256 | |
- "Going back to Ruby after working with Go for a week makes me appreciate a fast feedback loop. Ruby Y U SO SLOW? #golang" | |
https://twitter.com/burkelibbey/status/312328030670450688 | |
- "#golang is quickly becoming the de facto third language of @shopify (after ruby and JS). Pretty excited about this." | |
https://twitter.com/darkhelmetlive/status/142506549171073024 | |
"It's faster to recompile and run my #golang app from scratch than it is to restart my ruby app doing the same thing." |
Russ cox should be mentioned as well.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
updated in my fork: https://gist.github.com/aaronblohowiak/6915539