Skip to content
Go

Go’s Sweet 16: From Systems Experiment to Industry Standard

Published: Duration: 7:45
0:00 0:00

Transcript

Host: Alex Chan Hey everyone, welcome back to Allur! I’m your host, Alex Chan. Today, we are celebrating a bit of a milestone in the tech world. Can you believe it’s been sixteen years since the Go team at Google took that massive leap of faith and open-sourced the language? I remember back in 2009—software felt… I don’t know, heavy. We were all wrestling with these incredibly complex, heavyweight languages, and then Go arrives with this almost radical proposition: "Let’s be boring." It prioritized build speed and readability over everything else. Fast forward to today, and Go has matured from this experimental systems project into the actual backbone of modern cloud infrastructure. If you’ve touched Docker, Kubernetes, or Terraform, you’re touching Go. Today, we’re diving into Go’s "Sweet 16," looking at how it’s stayed remarkably consistent while the rest of the industry chases every passing trend. We’ll talk about the big 1.22 and 1.23 updates, why the "Go 1 Promise" is the ultimate competitive advantage, and even how Go is finding a new home in the AI revolution. Host: Alex Chan Joining me today to help break all of this down is Marcus Thorne. Marcus is a Lead Infrastructure Engineer at CloudScale and has been writing Go since the very early days—I think he told me he was there for the 1.0 release party. Marcus, it’s so great to have you on Allur. Guest: Marcus Thorne Thanks so much for having me, Alex! It’s honestly wild to think it’s been sixteen years. I still remember the first time I compiled a Go binary and it was just… there. No missing DLLs, no classpath nightmares. It’s been a fun ride watching it grow up. Host: Alex Chan It really has! You know, looking at the recent 16-year retrospective from the Go team, the word that keeps coming up is "consistency." In a world where some languages feel like they have an identity crisis every two years, Go just… stays Go. Why do you think that "boring" philosophy has been such a win for the community? Guest: Marcus Thorne It’s funny, right? "Boring" is usually an insult in tech, but in Go, it’s a badge of honor. The original creators—Rob Pike, Ken Thompson, Robert Griesemer—they had this vision of a language that stays in your head. You don’t need a 1,000-page manual to understand a Go project you didn’t write. I think the reason it’s won is that Go prioritizes the person *reading* the code three years from now, rather than the person *writing* it today. That "Go 1 Promise" of backward compatibility? That’s everything. I have code I wrote in 2012 that still compiles and runs perfectly today. That’s unheard of in most other ecosystems. Host: Alex Chan That is rare. I mean, I’ve worked in ecosystems where a minor version bump feels like a weekend-long emergency. But even with that focus on stability, the last year has actually been pretty huge for Go, technically speaking. We’ve had version 1.22 and 1.23. One thing I keep hearing about is the "for loop" change. Was that as big a deal as people say? Guest: Marcus Thorne Oh, absolutely! Honestly, Alex, it was probably the most common "gotcha" for both beginners and veterans. Before 1.22, if you captured a loop variable in a goroutine, all those goroutines might end up looking at the very last value of the loop because they shared the same memory location. You had to do this weird manual shadowing—like `v := v`—to fix it. In 1.22, they finally changed it so each iteration gets its own instance. It’s one of those things where you’re like, "Wait, we could have just done this years ago?" But it shows the team's care—they didn't want to break existing code, so they moved very deliberately. It’s fixed a whole class of race conditions overnight. Host: Alex Chan Interesting! It’s like the language is finally smoothing out those tiny thorns. And then there’s 1.23, which brought us iterators and "range-over-functions." Now, when I first saw that, I thought, "Wait, is Go getting… complicated?" Guest: Marcus Thorne I had the same initial reaction! I was like, "Are we becoming Java?" But once you use it, it clicks. It’s a way to define custom iteration while keeping that familiar `for-range` syntax we all love. Like, if you have a custom data structure—maybe a linked list or a specialized tree—you can now let users loop over it just like they would a slice. The `iter` package is really surgical. It adds power without making the language feel bloated. And speaking of 1.23, the `unique` package for type-safe interning is a sleeper hit. For people working on massive-scale apps with lots of repeating strings or data, the memory savings are actually huge. Host: Alex Chan See, that’s that "Google-scale" DNA showing through again. Speaking of scale, I wanted to ask about performance. I’ve been reading about PGO—Profile-Guided Optimization. Is that something the average developer actually benefits from, or is it just for the giants? Guest: Marcus Thorne Actually, it’s becoming a production staple for everyone. With 1.22 and 1.23, PGO is more aggressive. The compiler basically looks at how your code *actually* runs in production—where the bottlenecks are—and then re-compiles it to be more efficient in those specific spots. We’re seeing 5 to 10 percent performance boosts basically for free. You don't have to rewrite a single line of logic. You just feed the profile back into the build. It’s like the compiler is learning from its own behavior. Host: Alex Chan That’s incredible—literally free performance. Now, I have to bring up the "elephant in the room" from the last year: Telemetry. When the Go team announced they were adding privacy-preserving telemetry, people… well, they had opinions. How has the community settled on that? Guest: Marcus Thorne Yeah, it was a bit of a firestorm at first. But I think as people realized how it actually works—it’s not tracking your code or your personal data, it’s about how the *tools* are used—the mood shifted. It’s moving the Go team from "guessing" what features we need to "analyzing" what we actually use. If a certain flag in the `go` command is failing 20% of the time, they’ll actually see that now and fix it. It’s part of Go maturing into a data-informed project. Plus, the security tooling like `govulncheck` is just… it’s the gold standard. Having vulnerability scanning built directly into the toolchain makes the "move fast and break things" crowd look a bit reckless by comparison. Host: Alex Chan Right! It’s that "batteries-included" feel. You’re not hunting for third-party tools just to stay secure. Now, before I let you go, I have to talk about AI. Python is obviously the king of data science, but I’m seeing Go pop up more and more in AI infrastructure. Is Go actually a player there? Guest: Marcus Thorne It’s the secret sauce, Alex. Python is great for the researchers and the notebooks, but when you need to serve a model to a million users with low latency? That’s a Go problem. Go is becoming the "plumbing" for AI. Look at LangChainGo or the vector databases like Milvus or Weaviate—a lot of that high-performance infrastructure is written in Go. It’s the bridge between the heavy C++ kernels and the web. Go’s concurrency model is just unbeatable for handling thousands of simultaneous AI model requests. It’s not replacing Python for training, but it’s definitely winning the "serving" war. Host: Alex Chan "The plumbing of AI"—I love that. It’s not flashy, but nothing works without it. Marcus, this has been such a great look at where Go is at sixteen. Any final thoughts on what the next few years look like? Guest: Marcus Thorne Honestly, I just hope it stays "boring." If we’re sitting here for Go’s 20th anniversary and I can still read a junior dev’s code without a headache, then Go has won. I’m looking forward to 1.24 and even more compiler optimizations, but mostly, I’m just happy the Gopher is still going strong. Host: Alex Chan I couldn't agree more. Stability is the ultimate feature. Marcus, thank you so much for joining us on Allur and sharing your expertise. Guest: Marcus Thorne My pleasure, Alex. Happy birthday, Go! Host: Alex Chan And a huge thank you to all of you for tuning in to Allur. Whether you’re a long-time Gopher or you’re just now thinking about taking the plunge into Go 1.23, there’s never been a better time to get started. If you want to learn more about the updates Marcus and I discussed, check out the Go blog at go.dev. We’ll be back next week talking about some exciting shifts in mobile development. Until then, stay curious and keep building. Thanks for tuning into Allur!

Tags

Go Golang open-source cloud-native concurrency