At InVision, we are huge fans – and avid users – of Golang. We love its simplicity, low overhead, excellent concurrency model, and its well thought out standard libraries. And, to be honest, it’s just a lot of fun to write code in Go.
As such huge fans of Go, and as a shop that likes to stay on the cutting edge, we were excited to be able to attend GopherCon 2016 this year. It was an opportunity to get a pulse on the general ecosystem and to hear talks from some of the brightest minds in the industry. I was fortunate to be able to attend with my friends and colleagues Jesse Dearing and Jon Dowdle.
There were a ton of great talks this year. While I wish we could have attended all of them, the ones we were able to attend were fantastic. In this blog post, Jon, Jesse, and I highlight some of our favorite talks and some key takeaways.
This year there were a number of high-level talks that touched on topics such as the internals of
map, work that went into the Go assembler and the origin/inspiration for goroutines and channels. In addition, there were a number of practical talks that should improve the skills of even seasoned Go developers.
Of note is the “Practical Advice for Library Authors” talk presented by Jack Lindamood, who provided a number of great insights about best practices for writing libraries. Some of the advice served as acknowledgement that we’ve been “doing things the right way” (passing in *Config structs to constructors versus multiple params), while in some cases, things that we could probably improve upon (avoiding vendoring in libs; avoiding goroutine and channel usage in libs).
Rob Pike’s “The Design of the Go Assembler” was another interesting talk which dove into the details of the Go compilation tool chain and shed light on the process involved in introducing additional architecture support to Golang. We learned that the “abstracted” assembly language used by the Go compiler, allows one to introduce new architecture support much faster than ever before. You can read more about the Go assembler here.
Most importantly though, in a talk provided by Renee French, we learned about the history of the Go gopher and how exactly he is able to hold things with nubs (hint: var der Waals’ forces).
Finally, it was refreshing to see that the GopherCon organizers really care about representing the diverse crowd that attends. One comment we heard from the conference organizers was about an engineer who was typically asked if she was working the booth, whereas here she was asked about her github handle. It is great to see more inclusiveness!
Needless to say, the conference was a major success - we are eager to see the language continue evolving and meeting fellow gophers next year at GopherCon!