3 Things I learned at GothamGo NYC

Last week I was able to attend GothamGo, a conference exclusively focusing on Go — a C-based open source language first developed at Google. This was definitely an exciting opportunity for me since I primarily program in Javascript! Here are some takeaways I got after attending my first Go conference:

Go has less features than other programming languages…and it was intended that way!

On the first day of the conference, I had the chance to take Mat Ryer’s 8-hour Go workshop. Within the first 15 minutes, he opened with one statement: “Go has less features…on purpose”

Go was designed to take the “good parts” from OOP languages such as C and Java. With less abstractions, the syntax is much easier to read!

  • No classes — everything is divided into packages
  • No constructors
  • Does not support inheritance. (Although this seems like a limitation, this will make code easier to maintain in high-scaling apps. No mutations!)

Hey, thats me!

Go is super opinionated

There are some aspects of Go that are very opinionated. For example, the default linting tool decides exactly where there should be new lines (no more than one additional between function, etc.), automatically formatting brackets, code not executing if you start your curly brace on a new line, and no semicolons. This means code is very readable, easily worked on between teams, and people can easily move between projects and be effective.

Community is Everything

The Go community is pretty different than other communities I am a part of (Javascript, UX/UI, CSS). Since the Go syntax is inherently opinionated, best practices are already instilled in the code — gone are the debates of tabs vs spaces!

Developers I met had all types of backgrounds: a 48-year-old Java programmer learning a new skill set, a designer teaching himself how to code, a Javascript developer trying to dive into the back-end, and a product owner learning Go to familiarize herself with her team’s new tech stack. As I began to chat with each person, I noticed one common thing — everybody cared about the successful and widespread adoption of this language! Multiple speakers at the conference pushed “Gophers” to contribute to the community by writing tutorials, answering questions on StackOverflow, or even interacting with the Go team themselves on the Gopher Slack Channel. I’ve had experiences at conferences where developers would go on an on boasting about their team’s latest-and-greatest product or criticize why/how “Developer A” would do something “Developer B” wouldn’t. Not here. There was a feeling of empowerment, support, and enthusiasm throughout the conference hall — it’s quite hard to explain without being there.

Go is a rapidly-evolving, easy-to-use, and human readable OOP language that is approachable to a front end developer like me. Will I ever leave the Javascript world? Probably not. But I am definitely going to try and build more things with Go.