Go is a general-purpose language that bridges the gap between efficient statically typed languages and productive dynamic language. But it’s not just the language that makes Go special – Go has broad and consistent standard libraries and powerful but simple tools.
Go was developed by engineers working at Google. It was built with the idea of helping Google's engineers develop applications at scale. A couple of Go projects at Google are the server powering dl.google.com and the database layer of YouTube. In the last couple of years, it has gained traction amongst other industry heavyweights such as Mozilla (Heka), Canonical (Juju), Heroku (Doozer), Cloudflare (Railgun), Bitly, DigitalOcean and SoundCloud to name a few.
If you're interested in learning Go, here are a few talks worth checking out:
-
Concurrency is not Parallelism (slides). A short 30 minute video about a fundamental idea of computing - concurrency, and how Go helps programmers write concurrent programs easily.
-
A simple programming environment (slides). The introduction to the language. What was the motivation behind building it? What is it like programming with it?
-
Code that grows with grace (slides). Interesting talk that shows off how much you can accomplish in Go with minimal effort. You will learn how to build a functional chat roulette server in under 50 lines of code
-
Go Concurrency Patterns (slides). How to take advantage of channels, goroutines and other concurrency tools.