The highly anticipated Go 1.19 update is expected to release in August, bringing a revised memory model and new types designed to improve atomic value usage. Currently in preview, Go 1.19 can be downloaded from go.dev, though it remains unstable at this time. According to the release notes, the Go 1.19 update aligns the language memory model with those used by C, C++, Java, JavaScript, Rust, and Swift. It also introduces several new types in the sync/atomic package to simplify the use of atomic values, such as atomic.Int64 and atomic.Pointer(T). The Go memory model is essential for specifying the conditions under which one goroutine variable reads are guaranteed to observe values produced by writes to the same variable from a different goroutine. Notably, Go only provides sequentially consistent atomics, unlike the more relaxed forms offered by other languages. In addition to the revised memory model, Go 1.19 presents a minor change to the language, correcting the scope of type parameters in method declarations. This update has no impact on existing programs. The Go 1.19 release follows the milestone launch of Go 1.18 in March, which introduced much sought-after generics capabilities. Go 1.19 also brings several other new features and enhancements, such as:
- Runtime support for a soft memory limit, which encompasses the Go heap and memory managed by the runtime, excluding external sources like binary mappings and memory managed by other languages.
- Reduced scheduler allocation of GC worker routines on idle OS threads during a periodic GC cycle when the application is largely idle.
- A jump table implementation for large integer and string switch statements by the compiler, resulting in performance improvements of up to 20%.
- Clearer headings, links, and lists supported in doc comments.
- Recognition of the build constraint, unix, in go:build lines.
- Linux support for the Loongson 64-bit LoongArch architecture.
For developers looking to build web, mobile, and backend applications using a no-code platform, AppMaster.io provides an extensive, integrated development environment that generates scalable software solutions without the need for code. With the ability to create comprehensive applications within a matter of seconds, AppMaster.io is ideal for a wide range of customers, from small businesses to enterprises.