Here's why: a list of people/organizations explaining why they use Go. This is partly redundant with [GoUsers](GoUsers). We also have a specific page dedicated to [Go success stories](SuccessStories).

## Why Go

- [For Better or For Worse](http://jmoiron.net/blog/for-better-or-for-worse/) _2015-11-12_
- [Six reasons why I love Go](http://jbu.io/2015/10/28/six-reasons-why-i-love-go/) _2015-10-28_
- [CERN: Python vs Go for Data Access Service (PDF)](https://indico.cern.ch/event/449425/session/1/contribution/6/attachments/1168560/1685802/DAS_python_vs_go.pdf) _2015-10-18_
- [Sorry Ruby, I think I've fallen for Go](https://medium.com/@voxxit/sorry-ruby-i-think-i-ve-fallen-for-go-2e92ce1b356) _2015-09-26_
- [Google Go: Why Google's programming language can rival Java in the Enterprise - Techworld](http://www.techworld.com/apps/why-googles-go-programming-language-could-rival-java-in-enterprise-3626140/) _2015-09-25_
- [Moving to Three Languages](http://www.jaredwray.com/2015/09/15/moving-to-three-languages/) _2015-09-15_
- [Warming up to Go](http://jeremymikkola.com/posts/2015_08_28_warming_up_to_go.html) _2015-08-28_
- [400 Days of Go](http://www.philipotoole.com/400-days-of-go/)
- [Iron.io: How We Went from 30 Servers to 2 with Go](http://blog.iron.io/2013/03/how-we-went-from-30-servers-to-2-go.html)
- [Behind the Scenes: Big Data at Torbit](http://torbit.com/blog/2013/02/19/big-data-at-torbit/)
- [Juju at Canonical](http://www.reddit.com/r/programming/comments/18atce/juju_canonical_109k_lines_of_go_code/)
- [Go at bitly](http://word.bitly.com/post/29550171827/go-go-gadget)
- [NSQ: realtime distributed message processing at scale](http://word.bitly.com/post/33232969144/nsq)
- [CloudFlare blows hole in laws of Web physics with Go and Railgun](http://arstechnica.com/information-technology/2013/02/cloudflare-blows-hole-in-laws-of-web-physics-with-go-and-railgun/)
- [Why I Like Go](https://gist.github.com/freeformz/4746274)
- [dl.google.com now served by Go](https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/BNUNbKSypE0)
- [Google's Go Programming Language Grows Up: Now What?](http://www.readwriteweb.com/cloud/2012/03/googles-go-programming-languag.php)
- [Moving to Go](http://blog.toggl.com/2012/09/moving-to-go/)
- [Rob Pike: Why Learn Go?](http://www.youtube.com/watch?v=FTl0tl9BGdc)
- [Go At Conformal](https://www.cyphertite.com/blog.php?/archives/7-Go-at-Conformal..html)
- [Why I went from Python to Go (and not node.js)](http://jordanorelli.tumblr.com/post/31533769172/why-i-went-from-python-to-go-and-not-node-js)
- [@tobi](http://twitter.com/tobi): ["I have now completed two projects in Go. I predict that it's going to be the dominant language for server work."](https://twitter.com/tobi/status/245873677483274240)
- [@derekcollison](http://twitter.com/derekcollison): ["Prediction: Go will become the dominant language for systems work in IaaS, Orchestration, and PaaS in 24 months."](https://twitter.com/derekcollison/status/245522124666716160)
- [Will Go be the new go-to programming language?](http://gigaom.com/cloud/will-go-be-the-new-go-to-programming-language/)
- [Go is boring](http://aeronotix.pl/blog/go-is-boring)
- [Dr. Dobb's: Why Not Go?](http://www.drdobbs.com/open-source/why-not-go/240005062)
- [Google I/O 2012: Go in production](http://www.youtube.com/watch?v=kKQLhGZVN4A)
- [Go at Novartis](https://plus.google.com/114945221884326152379/posts/d1SVaqkRyTL)
- [Go at the BBC](http://www.quora.com/Go-programming-language/Is-Google-Go-ready-for-production-use/answer/Kunal-Anand)
- [Go at SoundCloud](http://backstage.soundcloud.com/2012/07/go-at-soundcloud/)
- [Go at Moovweb](https://groups.google.com/forum/#!topic/golang-nuts/MeiTNnGhLg8/discussion)
- [Building StatHat with Go](http://blog.golang.org/2011/12/building-stathat-with-go.html)
- [Go at CloudFlare](http://blog.cloudflare.com/go-at-cloudflare)
- [Why you PHP guys should learn Golang](http://www.mikespook.com/2012/08/why-you-php-guys-should-learn-golang/)
- [I/O BootCamp 2011: Real World Go](http://www.youtube.com/watch?v=7QDVRowyUQA)
- [Go at Heroku](http://blog.golang.org/2011/04/go-at-heroku.html)
- [**The Business Benefits of Building Your Next Project With Go** by Tom Maiaroto](https://medium.com/@shift8creative/the-business-benefits-of-building-your-next-project-with-go-ebed4bbc3ed7)
- [**TweetQureet: a full Golang technology stack** by Qureet](http://www.qureet.com/blog/golang-technology-stack/)
- [**Where and why we use Go** by Jeremey Bingham, Raintank.io](https://blog.raintank.io/where-and-why-we-use-go/)
- [*Half a decade with Go* by golang.org blog](http://blog.golang.org/5years)
- [**Why Learn Go** by Rob Pike (YouTube)](https://www.youtube.com/watch?v=FTl0tl9BGdc)
- [**Go at Google** by Rob Pike (YouTube)](http://www.infoq.com/presentations/Go-Google)
- [**Go at Google** by Rob Pike (Article)](http://talks.golang.org/2012/splash.article)
- [**5 things I love** by Andrew Gerrand (dotGo 2014)](https://www.youtube.com/watch?v=fsTOOPB1TBY)
- [**dl.google.com powered by Go** by Brad Fitzpatrick](http://talks.golang.org/2013/oscon-dl.slide#1)
- [*Is Google using Go internally?* by golang.org](https://golang.org/doc/faq#Is_Google_using_go_internally)
- [**The State of the Gopher** by Brad Fitzpatrick (dotGo 2014)](https://www.youtube.com/watch?v=4KFTacxqkcQ)
- [*Software I'm excited about* by Brad Fitzpatrick (dotScale 2013)](https://www.youtube.com/watch?v=sYukPc0y_Ro)
- [*I came for the easy concurrency I stayed for the easy composition* by John Graham-Cumming (dotGo 2014)](https://www.youtube.com/watch?v=4KFTacxqkcQ)
- [**Go 1.4+ Garbage Collection (GC) Plan and Roadmap** by Richard L. Hudson](https://docs.google.com/document/d/16Y4IsnNRCN43Mx0NZc5YXZLovrHvvLhK_h0KN8woTO4/edit)
- [*Five things that make Go fast* by Dave Cheney](http://dave.cheney.net/2014/06/07/five-things-that-make-go-fast)
- [*Another go at the Next Big Language* by Dave Cheney](http://dave.cheney.net/2012/09/03/another-go-at-the-next-big-language)
- [*Rewriting a large production system in Go* by Matt Welsh](http://matt-welsh.blogspot.com/2013/08/rewriting-large-production-system-in-go.html)
- [*Go is Boring* by Steve Bate](http://stevebate.silvrback.com/go-is-boring)
- [**Gopher Academy Blog**](http://blog.gopheracademy.com/)
  - [*Kubernetes + Go = Crazy Delicious* by Joe Beda](http://blog.gopheracademy.com/birthday-bash-2014/kubernetes-go-crazy-delicious/)
  - [*Why InfluxDB is written in Go* by Paul Dix](http://blog.gopheracademy.com/birthday-bash-2014/why-influxdb-uses-go/)
  - [*How Continuum ended up being written in Go* by Derek Collison](http://blog.gopheracademy.com/birthday-bash-2014/apcera/)
  - [**Building Street Address Autocomplete with Go** by Matt Holt](http://blog.gopheracademy.com/birthday-bash-2014/building-street-address-autocomplete/)
- [**GopherConIndia Interview with Gophers**](http://www.gophercon.in/blog/)
- [*Why I went from Python to Go (and not node.js)* by Jordan Orelli](http://jordanorelli.com/post/31533769172/why-i-went-from-python-to-go-and-not-node-js)
- [*Farewell Node.js* by TJ Holowaychuk](https://medium.com/code-adventures/farewell-node-js-4ba9e7f3e52b)
- [*Can Go really be that much faster than Python?* on StackOverflow](http://stackoverflow.com/questions/12574909/can-go-really-be-that-much-faster-than-python)
- [*Python to Go* by Weng Wei](http://www.slideshare.net/wuvist1/python-to-go)
- [*Why I Program in Go* by Tahir Hashmi](http://tech.t9i.in/2013/01/why-program-in-go/)
- [*DNS Server in Go* by Ask Bjørn Hansen](http://news.ntppool.org/2012/10/new-dns-server.html)
- [*Fixing Server bottlenecks with Go and Nginx* by Ismael Celis](https://www.new-bamboo.co.uk/blog/2014/11/18/fixing-server-bottlenecks-with-go-and-nginx/)
- [*Go and Switft* by Scott Rosenberg](https://medium.com/backchannel/my-computer-language-is-better-than-yours-58d9c9523644)
- [*Features I Like about Go* by Abhi Yerra](https://medium.com/on-being-a-code-monkey/things-i-like-about-go-e026762be8ac)
- [**Go at Apcera** by Derek Collison](https://www.hakkalabs.co/articles/why-we-use-go)

## Who uses Go

[Moved to the GoUsers page](GoUsers)


## Benchmarks
- [**Express vs Flask vs Go vs Sparkjava** by Bijan](https://medium.com/@tschundeee/express-vs-flask-vs-go-acc0879c2122)
- [**Comparing the Performance of Various Web Frameworks** by Abel Avram](http://www.infoq.com/news/2014/05/benchmark-web-framework)
- [TechEmpower Web Framework Benchmarks](http://www.techempower.com/benchmarks/)
