Since its official release in November 2009, Go open source has gone through a full 12 years. Just now, Russ Cox, the technical leader of the Go development team, wrote an article to celebrate the 12th Anniversary of Go Open Source.
In this blog post, Russ Cox reviewed the changes and progress made in Go open source this year, and looked forward to the next stage of development.
Russ Cox mentioned the replacement of godoc.org with pkg.go.dev and the activation of the new domain name go.dev, which can integrate all official Go sites under a unified domain name.
In February of this year, Go 1.16 version added support for macOS ARM64, as well as a number of improvements and optimizations such as file system interface and embedded files, and modules enabled by default.
In August of this year, Go 1.17 version added support for Windows ARM64, which greatly improved the ease of use and security of TLS cipher suite decisions; the introduction of pruned module graphs and a new and easy-to-read construction constraint syntax allowed Go Modules are more efficient in large projects. Go 1.17 version also switches the x86-64 Go function to a register-based calling convention at the bottom level, which improves the performance of CPU-intensive applications by 5-15%.
In addition, the IDE also supports enabling gopls by default in VS Code Go, and also provides a number of improvements for gopls and VS Code Go, including a powerful debugging experience supported by Delve.
In addition to the new proposal to add fuzzing support, this year also officially proposed to add generics to Go, and it is clear that it will be provided in Go 1.18.
It is understood that in early October, Rob Pike, the "father of Go language", wrote an issue on Github saying that "generics are not recommended in the Go 1.18 standard library". On October 28th, Russ Cox issued another article finally clarifying the message that "generics will be supported in Go 1.18".
In this regard, Russ Cox stated in this blog post that perfecting generics will be one of the key tasks of the Go team next year (another key task is related to supply chain security). The initial version in Go 1.18 is just the beginning. It is expected that Go 1.19 (or will be released in August 2022) and later versions will further improve the design and implementation of generics and further integrate them into the overall Go experience.
At present, the Go team has begun to study the Go vulnerability database and related tools for reporting vulnerabilities in program dependencies to improve the signal-to-noise ratio of such tools (if the program does not use vulnerable functions, it will not be reported), It is expected that it will be provided as a standalone tool next year and will be added to existing tools. At the same time, more work needs to be done in the future to improve the security posture of the Go supply chain.
About the Go language
The Go language was originally designed by Google engineers such as Rob Pike in September 2007 and officially released in November 2009.
The Go language perfectly combines the easy-to-write characteristics of dynamic languages and the high efficiency of static languages, with good ease of use and excellent execution efficiency.
The Go language was originally positioned in the programming of Web servers, storage systems and databases, and at the same time included concurrent constructs in the language to help developers create parallel tasks. The Go development team once stated that the compiled Go program runs at a speed close to that of the C language program.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。