This week, Harry Moreno, a software engineer, came in to teach us about Golang during our company Lunch & Learn. Harry is a talented developer who specializes in Python / Django, Golang, and building out MVPs. He’s currently self-employed as a contractor / freelancer building out tools for various clients. Previously, he was on the team at Capsule Pharmacy where he worked on their codebase migration from Go to Python / Django. Read more about learning Go on Harry’s blog.
He also told us that Go, created by Google engineers in the late 90s, was originally intended to be a systems language built to improve compilation and deployment speed in large Google binaries written in C++. Rob Pike and his team at Google developed Go to be a simple, minimalistic language that runs fast, is highly scalable, and is easy to adopt. Some unique benefits of Go include:
- It enforces a universal style for code. Gofmt is a tool built directly into the Go compiler that fixes code automatically before compiling. This makes Go a very useful language for open source projects where engineers are unknown to each other and aren’t familiar with each others’ code-writing idiosyncrasies.
- Go gets compiled on the developer’s machine for the intended platform, which means that a target machine or cloud server does not need a virtual machine to run Go code, thus it avoids slowing down the user experience. Similarly, because of this, Go is preferable to interpreted languages for command-line utilities or similar programs that start or stop multiple times per day, because unlike languages like Java or Python, there is no startup time needed for virtual machines. Go is all about being simple and fast!
- Go has first class support for concurrency. It was built to solve problems at Google, including the ability to deal with serving millions / billions of requests concurrently. This makes it an optimal tool for writing scalable web APIs.
- Go Ethereum is currently the most popular implementation of Ethereum, in large part due to its enforced universal style and fast performance.
In all, we were so lucky Harry agreed to come and impart his valuable Go knowledge to us! It was a great time.