Open Source Software Superstream Series: Go—Generics, Extensibility, and the Future of Go in Open Source Programming
Published by O'Reilly Media, Inc.
Go is now over a decade old, but that doesn’t mean it’s showing its age. As open source projects across industries have adopted Go, the language has continued to grow and change to meet their needs. Recent and forthcoming additions to the language, such as generics and modules, will alter Go programming dramatically. What do these developments mean for adoption? (Why, for example, is Go the language chosen by so many CNCF projects?) And what features do expert Go developers see as the backbone of the future of programming?
Join us to hear expert insight into how the Go language is changing open source development, what makes it right for so many open source projects, and how developers can use Go’s unique new features to build secure, reliable, and efficient applications.
About the Open Source Software Superstream Series: Each day in the four-part OSCON Superstream Series covers a different programming language and its ecosystem, with unique sessions including keynotes from language luminaries, debates on controversial topics, and hands-on coding talks. And they’re packed with insights from innovators and the latest tools and technologies to help you stay ahead of it all.
What you’ll learn and how you can apply it
- Learn how best to approach using generics in Go code
- Discover how to extend Go applications
- Understand techniques for working in someone else’s codebase
- Find out what to do when concurrency goes wrong in your Go applications
This live event is for you because...
- You’re a Go developer who wants to learn how new features such as generics will affect your code and applications.
- You’re a software developer interested in learning more about Go as a language for developing tools, web services, or working with distributed systems.
- You’re an engineer, developer, or DevOps specialist looking to understand how Go is shaping observability and container management.
Prerequisites
- Come with your questions
- Have a pen and paper handy to capture notes, insights, and inspiration
Recommended follow-up:
- Take Introduction to the Go Programming Language (live online training course with Jay McGavren)
- Take RESTful Go APIs (live online training course with Mofi Rahman)
- Explore Understanding Go (expert playlist by Jay McGavren)
- Read Head First Go (book)
- Read Concurrency in Go (book)
- Read Learning Go (book)
- Read Cloud Native Go (book)
- Read The Go Programming Language (book)
- Play in the interactive Go Sandbox
Schedule
The time frames are only estimates and may vary according to how the class is progressing.
Kelsey Hightower: Introduction (5 minutes) - 7:00am PT | 10:00am ET | 2:00pm UTC/GMT
- Kelsey Hightower welcomes you to the OSCON Superstream.
Maartje Eyskens: State of Go (15 minutes) - 7:05am PT |10:05am ET | 2:05pm UTC/GMT
- Go 1.16 was released in February 2021, with various new features and fixes. Go expert Maartje Eyskens walks you through the most important changes to Go, including what you might have missed and what’s coming next.
- Maartje Eyskens is a Go developer working in the cloud native community. She spends most of her time contributing to open source projects such as cert-manager and Lokomotive. On the other side of her career, she dedicates much of her time to training a new generation in IT as a hybrid of applied engineering, performance art, and creative self-expression, as a lecturer at Thomas More University of Applied Sciences in the tiny city of Geel, Belgium.
Robert Griesemer and Ian Lance Taylor: Generics AMA (45 minutes) - 7:20am PT | 10:20am ET | 2:20pm UTC/GMT
- The Go community recently approved the adoption of generics in Go, which will give the language powerful building blocks for sharing code and building programs more easily. Join generics design authors and Google team members Robert Griesemer and Ian Lance Taylor for a discussion and AMA on generics in Go, moderated by Kelsey Hightower. Have your questions on generics answered and get a head start in thinking about how to best use generic programming to improve and enhance your Go code.
- Robert Griesemer is one of the designers of the Go programming language. Currently, he’s mostly focusing on generics for Go. Previously, Robert worked on Google's V8 JavaScript engine and the domain-specific language Sawzall and was a founding member of the team that created the Java HotSpot virtual machine and the Strongtalk system. He likes things that "just work."
- Ian Lance Taylor has worked on GCC and other free software projects since 1990. He’s the author of the Go frontend for GCC, the gold linker, and Taylor UUCP. The first computer he used was a DECSYSTEM-20 and his first home computer was a TRS-80. He wrote what was likely the first and only TRS-80-based terminal driver for the Incompatible Timesharing System, which he used to write economic modeling equations in Macsyma.
- Break (5 minutes)
Nic Jackson: Plug-In Development with Wasm and Go (45 minutes) - 8:10am PT | 11:10am ET | 3:10pm UTC/GMT
- Growing or sustaining your application ecosystem requires a modular infrastructure to enable collaboration and provision user-defined extensibility. While the Go standard library and third-party packages provide this, knowledge of Go is often a prerequisite to using them. Nic Jackson shows you how plug-ins help scale your application ecosystem—and how WebAssembly (Wasm) is perfect for this purpose. You’ll walk through a simple application demonstrating how to define a plug-in interface using Wasm and explore the benefits and limitations of doing so.
- Nic Jackson is a developer advocate at HashiCorp and the coauthor of Service Mesh Patterns. Nic has over 25 years of industry experience; he loves teaching about and sharing his experience building distributed systems.
Spotlight on GoBridge (10 minutes) - 8:55am PT | 11:55am ET | 3:55pm UTC/GMT
- GoBridge’s core mission is to enable minorities in tech to use Go as a tool to learn and teach programming and, ultimately, to empower members of underrepresented groups in tech to help increase diversity in the Go community.
- Break (5 minutes)
Johnny Boursiquot: Learning in Public—Unbounded Concurrency with Go (20 minutes) - 9:10am PT | 12:10pm ET | 4:10pm UTC/GMT
- Go is famous for its elegant approach to concurrency using goroutines, but what happens when concurrency goes wrong? When applications become more layered with complexity, how should Go developers address bottlenecks? Johnny Boursiquot examines the impacts and constraints of concurrency that lie outside of Go code and in the systems the programs are interacting with.
- Johnny Boursiquot is a multi-disciplined software engineer with a love for teaching and community building. He’s the founder and organizer of the Baltimore Go User Group and has served as an organizer of both the Boston Ruby User Group and the Boston Go User Group. He stays busy as a speaker, trainer, podcast host, and diversity advocate within the Go community through GoBridge. He’s currently a site reliability engineer at Salesforce’s Heroku.
- This session will be followed by a 15-minute Q&A in a breakout room. Stop by if you have more questions for Johnny.
Natalie Pistunovich: Learning in Public—Get Go-ing in an Existing Go Codebase (20 minutes) - 9:30am PT | 12:30pm ET | 4:30pm UTC/GMT
- Whether you're working on a Go project at work or getting involved with an open source project, making your first contribution in Go is an exciting first step. You've completed training and want to get Go-ing, but there's a lot of existing code, and none of it’s structured in a way that's familiar to you. Where do you even start? Natalie Pistunovich leads a dive into an existing Go codebase, showing you how to map it, make sense of it, and understand where your contribution fits.
- Natalie Pistunovich is a learner, a Google Developer Expert for Go, an OpenAI ambassador, a public speaker, and a sailor. When she's not working on robust systems at Aerospike, she’s organizing the GopherCon Europe and Cloud Nein conferences and the Berlin chapters of the Go and Women Techmakers user groups. Previously, she was an engineering manager, software and hardware engineer, and cofounder of a mobile startup. In her free time, she wonders if there’s life on Mars.
- This session will be followed by a 15-minute Q&A in a breakout room. Stop by if you have more questions for Natalie.
- Break (5 minutes)
Jon Bodner: Learning in Public—Handling Errors in Go Idiomatically (20 minutes) - 9:55am PT | 12:55pm ET | 4:55pm UTC/GMT
- Error handling is one of the biggest challenges for developers moving to Go from other languages. For those used to exceptions, Go’s approach feels anachronistic. But there are solid software engineering principles underlying it. Join Learning Go author Jon Bodner as he walks you through how to work with errors in Go idiomatically. You’ll also take a look at panic and recover, Go’s system for handling errors that should stop execution.
- Jon Bodner is a software engineer, lead developer, and architect with over 20 years of experience. In that time, he's worked on software across fields including education, finance, commerce, healthcare, law, government, and internet infrastructure. Jon is the author of Learning Go and a distinguished engineer at Capital One.
- This session will be followed by a 15-minute Q&A in a breakout room. Stop by if you have more questions for Jon.
Kelsey Hightower: Closing Remarks (5 minutes) - 10:15am PT | 1:15pm ET | 5:15pm UTC/GMT
- Kelsey Hightower closes out today’s event.
Upcoming OSCON Superstream events:
Your Host
Kelsey Hightower
Kelsey Hightower has worn every hat possible throughout his career in tech and enjoys leadership roles focused on making things happen and shipping software. Kelsey’s a strong open source advocate focused on building simple tools that make people smile. When he isn’t slinging Go code, you can catch him giving technical workshops covering everything from programming to system administration.