Go 1.23 Released: Overview of Key Changes in the New Release

Online Python Trainer for Beginners

Learn Python easily without overwhelming theory. Solve practical tasks with automatic checking, get hints in Russian, and write code directly in your browser — no installation required.

Start Course

Go 1.23: A New Round of Language Evolution from Google



The Go (Golang) development team has released the stable version 1.23. This update is not just about bug fixes — it introduces significant changes to the standard library and type system, making the language even more convenient and performant. If you follow the Go ecosystem, this version definitely deserves attention.



The main highlight of the release is the long-awaited support for iterators at the language level (range-over-func). Now the for range loop can work not only with slices, maps, and strings, but also with arbitrary iterator functions. This opens the way to more elegant data processing pipelines without the need to write cumbersome callback functions.



  • Iterators (range-over-func). The standard library already includes dozens of new iterators for the slices, maps, and bytes packages. Now you can write for item := range myCollection.All() { ... } for custom collections.
  • Updated math/rand package. In Go 1.23, it received a new random number generator implementation based on ChaCha8. This is faster and more secure than the previous algorithm (Mersenne Twister), especially when used in parallel.
  • unique package. The new experimental package unique (previously known as unique/unique) provides a mechanism for interning (deduplication) arbitrary values. It helps save memory when working with repeated strings or structures.
  • Testing improvements. The t.Context() function in the testing package now returns a context that is automatically canceled when the test finishes. This simplifies writing tests with timeouts and cancellation.
  • Performance improvements. Garbage collection (GC) has been optimized, goroutine scheduler performance has been improved, and memory consumption when working with large maps has been reduced.


Changes in the tooling are also worth noting. The go build compiler now uses PGO (Profile-Guided Optimization) by default if a default.pgo profile file is found in the project directory. This provides a performance boost of 5-10% without any code changes.



The update also addresses security: several vulnerabilities in TLS certificate handling and archive processing have been fixed. Developers are recommended to update as soon as possible, especially if projects use the crypto/tls or archive/zip packages.



For those just starting to learn Go, version 1.23 is an excellent reason to join the community. The language is becoming increasingly friendly, and the new iterators and improved math/rand simplify solving common tasks.



How to update? Simply download the new version from the official website go.dev or use the version manager gvm. After installation, check the version with the go version command — you should see go1.23.0.



Stay tuned for updates on PythonLib — we continue to cover the most important events in the programming world. Go 1.23 is a step forward that will be appreciated by both beginners and experienced developers.

Recommended Libraries