It’s the 13th anniversary of the open source of the Go language, let’s see what the person in charge said

It’s the 13th anniversary of the open source of the Go language, let’s see what the person in charge said

foreword

Unknowingly, the Go language has been open source for 13 years.

A few days ago, Russ Cox, head of the Go team, published his thoughts on the 13th year of Go open source on the official blog.

Russ first reviewed the workspace mode (Go Workspace), fuzzing (Fuzzing) and generic design introduced by the Go 1.18 version released in March 2022.

It then introduces the new optimizations introduced in Go 1.19, the Go development toolchain, Go supply chain security, and other important milestones.

I made a translation of Russ's original text for readers.

original translation

Google Go Team Russ Cox

2022.11.10

Today we can happily celebrate the 13th year of open source of the Go language.

Go 1.18

For the Go language, there are a lot of important things this year. The most important thing is of course that we released the Go 1.18 version in March this year. This version introduces a lot of new features, including the well-known Go workspace mode, Go Fuzzing and Go generics.

  • The Go workspace mode allows developers to develop multiple modules that depend on each other at the same time. If you want to understand the Go workspace mode, you can refer to Beth Brown's article Get familiar with workspaces and workspace reference .
  • Fuzzing fuzz test is a new function of go test, which can generate random input to detect the correctness and loopholes of the code. If you want to know about Go Fuzzing, please refer to Getting started with fuzzing and fuzzing reference . In addition, the theme "Fuzz Testing Made Easy" shared by Fuzzing author Katie Hockman at the GopherCon 2022 conference will also be launched soon, so stay tuned.
  • Generics may be the most mentioned feature in Go language by developers. If you want to get started with Go generics, you can refer to the tutorial Getting started with generics . If you want to know more about the design and usage details of Go generics, you can refer to the official blog An Introduction to Generics and When to Use Generics , as well as Google 2021 Open Source Day technology sharing Using Generics in Go and GopherCon 2021 Go generic authors Robert Griesemer and Ian Lance Taylor's technique sharing Generics !.

Go 1.19

Compared with Go 1.18, the Go 1.19 version released in August this year has relatively fewer changes and attracted less attention. The Go 1.19 release focuses on continuing to optimize the new features introduced in Go 1.18. In addition, in Go 1.19 version, we support adding hyperlinks, lists, and titles in Go doc comments to generate Go package documentation. In addition, we introduced a soft memory limit for Go's garbage collector, which is very useful for managing container workloads. For more improvements and optimizations on GC, you can refer to Michael Knyszek's recent blog post Go runtime: 4 years later , video Respecting Memory Limits in Go and Guide to the Go Garbage Collector .

Go development tools

The Go team is also maintaining two Go language development tools VS Code Go extension plug-ins and the Gopls language server.

This year Gopls focuses on improving stability and performance, supporting generics, and providing richer Go language analysis functions.

To learn about the latest improvements in VS Code Go and Gopls, you can refer to Suzy Mueller's technical sharing Building Better Projects with the Go Editor , Debugging Treasure Hunt and the official technical blog Debugging Go in VS Code .

GoSupply Chain Security

About a month after the 12th anniversary of the open source of the Go language, the global sensational Log4shell vulnerability security vulnerability incident broke out , which woke everyone up. During the development process, the security of dependent libraries needs to be considered.

The Go language was designed with supply chain security issues in mind, which can help Go developers better understand and track the security of dependent modules.

Filippo Valsorda's technical blog How Go Mitigates Supply Chain Attacks describes how to manage the security of dependent packages.

In September this year, we pre-released the Go language vulnerability management mechanism in Julie Qiu's technical blog Vulnerability Management for Go .

At the heart of this vulnerability management mechanism is the maintenance of a new, screened database of security vulnerabilities and a new Go command govulncheck for finding security vulnerabilities in Go code.

Go Developer Survey

We used to conduct an annual usage survey on the Go language to Go developers at the end of each year.

This year we changed the survey frequency to a yearly survey, and the content of each survey was reduced. This can ensure that we can not only collect enough research results, but also reduce the burden on the respondents.

For the 2021 survey results, refer to Alice Merrick's article Go Developer Survey 2021 Results .

For the survey results in the first half of 2022, refer to Todd Kulesza's article Go Developer Survey 2022 Q2 Results .

Go Annual Conference Event

In 2022, several Go language developer conferences will be held. Including GopherCon Europe held in Berlin, Europe in July, and GopherCon held in Chicago in October.

Last week, we held an online event of Go Language Day in the Google Open Source Live Event, and mainly shared the following content:

Go milestones

Another important milestone this year is that we published the article The Go Programming Language and Environment in the authoritative journal Communications of the ACM . The authors are early designers and major implementers of the Go language, including Russ Cox, Robert Griesemer, Rob Pike, Ian Lance Taylor, and Ken Thompson.

This article elaborates why the Go language is so popular and improves development efficiency.

In short, the Go language focuses on providing an efficient development language and environment for the software development process. At the same time, it provides powerful scalability to support large-scale software project development and large-scale system deployment.

Outlook

In the 14th year of the Go language, we will continue to make the Go language the best development language in software engineering.

We will focus on improving software supply chain security, program compatibility, and structured records.

At the same time, there will be a large number of other functional improvements and optimizations, such as optimization based on profling results. Please stay tuned.

recommended reading

open source address

Articles and sample code are open source on GitHub: Go Language Beginner, Intermediate, and Advanced Tutorials .

Official account: advanced coding. Follow the official account to get the latest Go interview questions and technology stack.

Personal website: Jincheng's Blog .

Zhihu: Wuji .

Welfare

I have compiled a gift pack of back-end development learning materials for you, including programming language entry to advanced knowledge (Go, C++, Python), back-end development technology stack, interview questions, etc.

Follow the official account "coding advanced", send a message to backend to receive a data package, this data will be updated from time to time, and add data that I think is valuable.

Send a message " Join the group ", communicate and learn with peers, and answer questions.

References

  • https://go.dev/blog/13years

Guess you like

Origin blog.csdn.net/perfumekristy/article/details/127827116