After six months of development I saw the light, the release of the programming language GO 1.23, which is being developed by Google with the participation of a community, is a hybrid solution that combines the high performance of compiled languages with the ease of writing code and protection from errors found in script languages. The project code is distributed under the BSD license.
Syntax Go is based on the standard elements of the SI language with influences from Oberon. The language is concise, making code easily readable and comprehensible. Code in Go is compiled into separate binary executable files natively, without the need for a virtual machine. Runtime components, including profiling modules and debugging subsystems, are integrated to identify problems during execution efficiently, achieving performance comparable to programs in SI.
The project is designed for multi-threaded programming and efficient operation on multi-core systems, with features such as parallel calculation organization and interaction between parallel methods. The language includes built-in protection against exceeding memory block boundaries and supports garbage collection.
Among the changes in the new version:
- In “For” loops, the ability to specify a function as an argument of the “Range” expression to use it as an iterator has been added. This enables the creation of custom iterators for any sequences. The new package iter provides basic operations for sequence organization. Additionally, packages slices and maps have new features for working with iterators. For example, to iterate through an associative array in a sorted form, you can now use “For i, X := Range Slices.Sorted(Maps.Keys(M)) {…}”.
- Preliminary support for using type aliases with their parameters in summarized functions (generics) has been included. This allows the creation of functions that work with multiple types simultaneously. The support can be activated through the GOEXPERIMENT = aliasTypeParams flag.
- Instrumentation now includes the option to