Don’t say don’t know, say next jump. The Go language has been open source for 11 years, and it feels like it’s on a roll.

  • On March 16, 2011, the first stable version of Go, R56, was released;
  • On March 28, 2012, the first official version of the Go language, Go1, was released, promising 1.x compatibility;
  • The official version of Go1.1 was released on May 13, 2013.
  • On December 1, 2013, Go1.2 was officially released;
  • On June 18, 2014, Go1.3 was officially released;
  • On December 10, 2014, Go1.4 was officially released;
  • On August 19, 2015, Go1.5 was officially released. This version realizes bootstract, that is, remove C code, use Go to develop Go language;
  • On February 17, 2016, Go1.6 was officially released.
  • On August 15, 2016, Go1.7 was officially released; Importing the context package;
  • On February 17, 2017, Go1.8 was officially released;
  • On August 24, 2017, Go1.9 was officially released; Importing aliases;
  • On February 16, 2018, Go1.10 was officially released;
  • On August 25, 2018, Go1.11 was officially released. Start strong support for Go Modules;
  • Go1.12 was officially released on March 1, 2019;
  • Go1.13 was officially released on September 3, 2019;
  • Go1.14 was officially released on February 25, 2020; Goroutine supports asynchronous preemption scheduling;
  • Go1.15 was officially released on August 11, 2020;
  • Go1.16 is expected to be released in February 2021; Will include a new file system interface and support for static file embedding at build time, as well as a linker rewrite, and official support for Apple Silicon (GOARCH= ARM64) Macs.

Visual now

Now the Go language has set off waves of upsurge after wave in China, fried very hot. There are a lot of paid columns/videos related to Go on various platforms such as Geek Time, Pull Education, Gold Nuggets, MOOC, etc.

In terms of practical work, bytedance, Tencent’s preference to Go language, and other first-tier and second-tier factories have many Go positions, which indicates that the current situation has reached a relatively good wind.

At the level of open source projects, a large number of cloud native components such as Kubernetes, Etcd, Prometheus, Docker and so on are developed in Go language, and it is more convenient to know Go language to solve problems.

At the level of enterprise development, a large number of developers of other languages transition to Go language, which appears in the software development of enterprises. New projects use Go language, while old projects are retained, forming the hangman mode of maintaining new and old systems at the same time, and then gradually shifting:

PHP and C++ languages are common in the interview, which will form the situation of Go+PHP (new + old system) in the enterprise, or the operation mode of Go and CGO. This also benefits from the ease of use and certain glue features of Go.

At the level of training institutions, major institutions have launched an attack on Go language, but at present Go language is mainly dominated by middle and senior talents, that is, software development practitioners with experience in other languages. Therefore, the market situation of training institutions is relatively poor.

In terms of social recruitment and positions, in a narrow sense, it is consistent with the basic situation of Golang market I wrote in 2018:

The following is the geographical distribution of the “2020 China Go Developer Survey report” collected by GoCN:

At present, Go language is still popular in Beijing, Shanghai and Shenzhen. The main body is concentrated in first-tier cities, where the most opportunities exist.

Look at the data: TIOBE

According to TIOBE’s list of programming languages, Go is not particularly popular overall (compared to established languages), but it has done quite well as a programming language in just 11 years:

At the same time, it is often said that Go language will kill PHP, C++, Java and so on, but it is not realistic in the short term, and there is no official plan for this, because the right language for the right scenario is good.

TIOBE noted that it ranked 13th this month, and its highest ranking was 10th in May 2020, which has been stable near that figure recently. At least not in recent years, but one of the operators recently called it “ready to take over half of the language of the future.” What do you think?

Looking to the future

Go1 is sticking to the Go1 compatibility promise as it always has, which is a great shot in the arm for many enterprises that are using Go. But it also caused some “trouble” for the Go language. That is, changes with disruptive changes cannot be implemented in Go1.

Therefore, in order to solve some “problems”, we also want to achieve better feature goals. Go2 plans were announced in 2018. See Go2, Here We Come! , which contains a large number of features.

From the current basic tone and reality, compatible implementations will be implemented in Go1. For example, one of the most anticipated features, “generics,” is expected to be released as early as Go1.17.

// Print prints the elements of any slice.
// Print has a type parameter T and has a single (non-type)
// parameter s which is a slice of that type parameter.
func Print[T any](s []T) {
	// same as above
}
Copy the code

The latest design draft was released in late June. If you have further requirements for generics, you can pay attention to Design/GO2draft-Type-parameters. Some incompatible modifications, if not directly implemented after accurate evaluation, will go to the Go2 plan:

And I believe that when Go2 is released, it will certainly not be go Run XXX, it is estimated that the command set will be changed to distinguish.

conclusion

11 years old, Go language has been popular in China, but the success of the current stage does not mean that the future will continue to be strong, behind which is inseparable from the efforts of all developers in the community open source. Let’s think about the following questions:

  • What do you like most about Go?

  • What do you think are the current problems with Go? What piece of content do you expect him to solve?

  • If Go wants to continue to occupy more of the language market, where does it need to make efforts?

Take a look at the more current TLOBE Index for Go trend chart:

Where do you see Go going after 2020, and is it a good time to “fish for the bottom”?

My official account

Share Go language, micro service architecture and strange system design, welcome to pay attention to my public number and I exchange and communication.

The best relationship is mutual achievement. Your praise is the biggest motivation for the creation of fried fish. Thank you for your support.