Published Sep 3, 2019

Episode 202: Andrew Gerrand on Go

Andrew Gerrand dives into the evolution of the Go programming language, shedding light on its inception, community-driven growth, and the innovative concurrency model featuring goroutines and channels. He also highlights Go's exceptional tooling, profiling capabilities, and import management, demonstrating how they collectively streamline and elevate the coding process.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Design Goals

    The Go programming language was born out of a need to address the challenges faced by Google engineers working at an immense scale. explains that existing languages like C and Java were not designed for the vast engineering efforts at Google, leading to cumbersome workarounds 1. Go was conceived to simplify these problems, with features like Gofumpt ensuring consistent code formatting across massive codebases 1. This consistency aids in collaboration and reduces the friction in code reviews, making it easier to manage large-scale projects.

       

    Language Features

    Go's language features are designed to enhance simplicity and readability, with a unique approach to object orientation. highlights Go's interface system, which allows for flexible code structuring without rigid inheritance hierarchies 2. This approach encourages building small, composable pieces of code, leading to simpler and more reliable software. Additionally, Go's tooling, such as Goimports, streamlines code management by automatically updating package imports, reducing the friction of handling dependencies 3.

       

    Community Participation

    The Go community plays a vital role in the language's development, with contributions from both Google and external developers. notes that community-driven projects, like the Windows port of Go, demonstrate the collaborative nature of the project 4. Regular conferences and user groups worldwide foster a vibrant community, with events like GopherCon providing platforms for knowledge sharing and collaboration 5. This active participation ensures that Go continues to evolve with input from a diverse range of contributors.

Related Episodes