# What's new in Go 1.23 Page: https://stenobird.com/podcast/go-time-golang-software-engineering/what-s-new-in-go-1-23 Text version: https://stenobird.com/podcast/go-time-golang-software-engineering/what-s-new-in-go-1-23.md Podcast: [Go Time: Golang, Software Engineering](https://stenobird.com/podcast/go-time-golang-software-engineering) Published: 2024-07-30T18:00:00+00:00 Episode link: https://changelog.com/gotime/325 Audio file: https://op3.dev/e/https://cdn.changelog.com/uploads/gotime/325/go-time-325.mp3 Processing state: processed JSON: https://stenobird.com/v1/public/podcasts/go-time-golang-software-engineering/episodes/what-s-new-in-go-1-23 Duration seconds: 4015 ## Resource Explore the significant language changes in the Go 1.23 release, focusing on the introduction of iterator functions and new standard library packages. The discussion covers how these features simplify collection traversal and the Go team's philosophy on language evolution. ## Highlights - Main idea: Go 1.23 introduces iterators as a new construct to traverse collections like slices, arrays, and maps - Practical takeaway: Use the new iterator types to simplify complex loops and implement custom traversal logic - Failure mode: Avoid over-complicating code with custom iterators if a simple range loop over a slice suffices - Main idea: The 'iter' package provides the foundation for sequences, while functional utilities like map/filter remain experimental - Design philosophy: The Go team prioritizes stability by testing new features in experimental packages before moving them to the standard library ## Topics Go 1.23, Iterators, Software Engineering, Standard Library, Cloud Development Environments, Golang, Programming Languages, Data Structures ## Chapters - 1:00 — Cloud Development Environments: An introduction to Coder and how cloud-based IDEs help platform engineers standardize development environments. - 6:05 — Understanding Iterators: A breakdown of what iterators are and how they allow for traversing various collection types. - 10:45 — Traversal Challenges: Discussing the complexities of stopping tree traversals and managing state during iteration. - 16:00 — Resource Management in Iterators: Examining the importance of close methods and ensuring resources are properly cleaned up during iteration. - 21:05 — Consuming Iterators: How the new iterator types (iter.Seq, iter.Seq2) are designed to be easy for developers to consume. - 31:00 — The Future of Functional Go: A look at why functional primitives like map and filter are currently absent from the standard library. - 46:10 — New Packages and Interning: Exploring the 'strings' package updates and the concept of string interning in Go. ## Actions - request_transcript: `POST https://stenobird.com/v1/public/podcasts/go-time-golang-software-engineering/episodes/what-s-new-in-go-1-23/transcription-requests` — Idempotently request low-priority transcript generation for this episode. - read_markdown: `GET https://stenobird.com/podcast/go-time-golang-software-engineering/what-s-new-in-go-1-23.md` — Read the agent-friendly Markdown representation of this episode resource. A page view does not enqueue transcription. Agents should invoke `request_transcript` explicitly when they need this episode processed. ## Transcript Full transcripts are not published on public pages unless there is a clear rights basis.