Permalink to this article – https://ift.tt/M0mHtNY
When the people in China were holding their mobile phones for the Double Eleven shopping festival and were busy paying the balance and spikes, Russ Cox of the Go core team, on behalf of the Go language project team, published “Thirteen Years of Go” on the Go official blog. The blog post commemorates the 13th anniversary of the open source of the Go language, summarizes the evolution of the Go language since 2021, and briefly explains the improvements that Go will make in its 14th year. Here is a simple translation of the blog post for your reference.
Today, we celebrate the thirteenth birthday of the open source version of Go. From today, Go will officially enter the teenage stage !
Annotation: teenager: teenager; young people between the ages of 13 and 19
The past year has been an extraordinary one for Go. The most important event that happened during the year was the March release of Go 1.18 , which brought many improvements, most notably Go workspaces , fuzzing , and Go generics .
Go workspaces make it easy to work on multiple modules at the same time, especially when you maintain a set of modules that have dependencies on each other. To learn about Go workspaces, see Beth Brown’s blog post “Familiarize yourself with workspaces” and the workspace reference documentation .
Fuzzing is a new feature that helps you find inputs that your code doesn’t handle correctly. You just define a fuzz test that accepts any input data, then the fuzz test will try different random inputs, guided by code coverage, and try hard to fail the fuzz test execution. Fuzzing is especially useful when developing code that is robust to arbitrary input, even attacker-controlled input. To learn more about fuzzing, see the tutorial “Getting Started with Fuzzing” and the fuzzing reference documentation , and keep an eye out for Katie Hockman’s talk “Fuzzing Test made Easy” at GopherCon 2022, this The evolution video should be online soon.
Generics, probably the most requested feature for Go developers (annotation: from Go official survey data), adds a parameter polymorphism mechanism to Go to support writing code that can adapt to a variety of different types, and The guarantees of compile-time static checking are still not lost. To learn more about generics, see the tutorial “Getting Started with Generics” . For more details, see the blog posts “Introduction to Generics” and “When to Use Generics” , or “Using Generics in Go” from the Google Open Source Live at Go Day 2021 and from GopherCon 2021 by Robert Griesemer and Ian Lance Taylor co-presented “Generics” .
Compared with the Go 1.18 version, the Go 1.19 version released in August this year seems a little turbulent, which is not unrelated to this version’s focus on perfecting and improving the functional features introduced by Go 1.18, as well as internal stability improvements and optimizations. A notable change in Go 1.19 is the addition of support for links, lists and headings in Go documentation comments . Another is the addition of a soft memory limit to the garbage collector, which is especially useful in container workloads. For more information on recent garbage collector improvements, see Michael Knyszek’s blog post “Go Runtime: 4 Years later” , his talk “Respecting Memory Limits in Go” , and the new “Guide to the Go Garbage Collector” .
We’ve been working hard to make Go code development more elegantly scalable to support larger codebases, and our work on VS Code Go and the Gopls language server is dedicated to this. This year, work on Gopls has focused on improving stability and performance, while providing support for generics and new code analysis. If you haven’t used VS Code Go or Gopls yet, give it a try. Check out Suzy Mueller’s talk “Building Better Projects with the Go Editor” . As a bonus, debugging Go in VS Code is made more reliable and powerful with Delve’s native support for the Debug Adapter Protocol . Finally try Susie’s Debug Treasure Hunt !
Another part of development scale is the number of dependencies in the project. A month or so after Go’s 12th birthday , the emergence of the Log4shell vulnerability was a wake-up call for the industry, and the importance of supply chain security was heightened. Go’s module system is designed specifically for this, helping you understand and track dependencies, determine which specific dependencies you’re using, and determine if there are any known vulnerabilities in them. Filippo Valsoda’s blog post “How to Mitigate Supply Chain Attacks” outlines our approach. In September, we released a preview of our approach to Vulnerability Management for Go through Julie Qiu’s blog post “Vulnerability Management for Go.” At the heart of this work is a new, curated vulnerability database and a new govulncheck command that uses advanced Static analysis to eliminate most false positives.
One of our efforts to understand Go users is our annual Go year-end survey. This year, our UX researchers also added a lightweight mid-year Go survey. Our goal is to collect enough responses to be statistically significant without becoming a burden to the entire Go community. For the results, see Alice Merrick’s blog post “Go Developer Survey 2021 Results” and Todd Cullesa’s article “Go Developer Survey Q2 2022 Results” .
We’re also excited to meet many of you in person at Go tech conferences in 2022, especially GopherCon Europe in Berlin in July and GopherCon in Chicago in October as the world begins to resume more travel . Last week, we hosted Go Day , our annual virtual event, on Google Open Source Live. Here are some of our presentations at these events:
- How Go was the best version of yourself , by Cameron Balahan, at GopherCon Europe.
- “Team Go Q&A” with Cameron Balahan, Michael Knyszek and Than McIntosh at GopherCon Europe.
- “Compatibility: How Go Programs Keep Working,” by Russ Cox at GopherCon.
- “The Overall Go Experience” by Cameron Balahan at GopherCon (video not yet released)
- “Structured Logging Package for Go” by Jonathan Amsterdam at Google Open Source Live on Go Day
- “Write Applications Faster and Safer with Go” by Cody Oss at Google Open Source Live at Go Day
- ” Memory Limits in Go, by Michael Knyszek Google Open Source Live at Go Day
Another milestone this year was the publication of “The Go Programming Language and Environment” by Russ Cox, Robert Griesemer, Rob Pike, Ian Lance Taylor and Ken Thompson in “ACM Communications”. This article, by the original designers and implementers of Go, explains what we think makes Go so popular and productive . In short, Go’s focus is to provide a complete development environment. For the entire software development process, the focus is on scaling up to large software engineering efforts and large deployments.
In Go’s 14th year, we continue to strive to make Go the best environment for software engineering at scale. We plan to focus specifically on supply chain security, improving compatibility and structured logging, all of which are linked in this post. Of course there will be many other improvements, including profile-guided optimization, etc.
Thanks! Go has always far surpassed what Google’s Go team has done. Thank you to all of you — our contributors and everyone in the Go community — for helping make Go the successful programming environment it is today. We wish you all the best in the coming year.
“Gopher Tribe” Knowledge Planet aims to create a high-quality Go learning and advanced community! High-quality first published Go technical articles, “three-day” first published reading rights, analysis of the current situation of Go language development twice a year, reading the fresh Gopher daily 1 hour in advance every day, online courses, technical columns, book content preview, must answer within 6 hours Guaranteed to meet all your needs about the Go language ecosystem! In 2022, the Gopher tribe will be fully revised, and will continue to share knowledge, skills and practices in the Go language and Go application fields, and add many forms of interaction. Everyone is welcome to join!
The famous cloud hosting service provider DigitalOcean released the latest hosting plan. The entry-level Droplet configuration is upgraded to: 1 core CPU, 1G memory, 25G high-speed SSD, and the price is 5$/month. Friends who need to use DigitalOcean can open this link : https://ift.tt/vOkqDPW to open your DO host road.
Gopher Daily Archive Repository – https://ift.tt/8vlAFQ7
my contact information:
- Weibo (temporarily unavailable): https://ift.tt/ElibOjz
- Weibo 2: https://ift.tt/6AFqtxB
- Blog: tonybai.com
- github: https://ift.tt/siWTdDh
Business cooperation methods: writing, publishing books, training, online courses, partnership entrepreneurship, consulting, advertising cooperation.
© 2022, bigwhite . All rights reserved.
This article is reprinted from https://tonybai.com/2022/11/11/go-opensource-13-years/
This site is for inclusion only, and the copyright belongs to the original author.