The Go programming language continues to follow the path of accelerated adoption, and it is loved by the developers who use it.
This is evidenced by several recent surveys of developers, as well as attitudes expressed by developers who use the language.
At JetBrains 2021 The state of the developer ecosystem The fact is that Go entered the top five languages that the developers planned to adopt. It was also among the top five languages that developers have studied over the past year, and was among the top five languages.
In the official Developer Poll Go 202192% of respondents said their satisfaction with Go is very high.
Go is the language of the cloud, so it’s no surprise that over the past few years its popularity has continued to grow as cloud code-based development is becoming more and more prevalent.
“If you’re doing something on any cloud platform… people want to standardize on Go,” said Steve Ng, chief executive relations officer for Asia-Pacific and Japan at Observability. A new relic.
What does Go “cloud language” do? According to Andre Eriksen, founder of the back-end developer Encore.dev, there are several reasons for this. One reason is that Docker was originally created using Go.
In addition, according to Eriksen, many Cloud Native Computing Foundation (CNCF) projects have been built in Go. Ng added that many of these CNCF projects also interact and feed on each other.
Another factor is that Go is an incredibly reliable language, in part because of the way it handles errors. This encourages developers check for errors how they encode rather than relying on throws and catching exceptions as in other programming languages.
“And the way you write code when you use a programming language [that uses exceptions], you stop thinking about mistakes and just think that everything will go well, and if something goes wrong, an exception will be thrown out somewhere, and we will try to deal with it, ”Eriksen said. “And it works very well when things go well. And then it goes awfully when something goes wrong. And Go does it completely differently, where mistakes are just any other value. And it makes you think about errors much more, every time you do an operation in Go, for example, when you write to a file or send a request over the Internet via HTTP, Go makes you just think that if it goes wrong, and as a result, the reliability of systems built with Go is usually very, very high. ”
Another reason people may find it reliable is that it is supported by Google. The language was developed by Google in 2009, and version 1.0 was released in 2012. Go is still supported by the company and is used today in its production environment.
One nice thing, according to Eriksen, is that Google has taken a conservative view on language change. The changes that are made to the language usually relate to the edges, not to the main language itself.
Google has made a commitment to backward compatibility in Go. According to Eriksen, this means that when a language is updated, those updates do not disrupt your program. The exception is when there is a serious security vulnerability that needs to be addressed.
Eriksen added: “If you look at other programming languages … no one breaks things because they want to, it’s because they see that we can do it better. And we just need to change the way we do something. But it causes such fear of updating and you end up staying on the old version because upgrading to the latest version of Java is so scary and then you lose security fixes and performance improvements whereas in the Go community virtually every company I talk about ever heard, releases the latest version in the day or week when it was published ”.
According to Eriksen, Google is also famous for working on its production systems and on candidates for the Go release. This gives developers the confidence to update to the latest version, because by the time the final release is ready, you know everything is already working inside Google, giving a very strong signal to the community that the release has been thoroughly tested.
“It’s very nice because we’re trying to stay up to date with the Go Library,” said Maya Longmeier, the company’s software engineer for the database. InfluxData. “So every time a new stable release comes along, we try to update it as soon as possible. And such backward compatibility helps the work of developers. “
Google also listens to the community and its painful moments when it comes to deciding on new features to add, such as the recent addition of general programming support.
Go finally adds support for general programming
For a long time, generics were not included in Go, which caused dissatisfaction among Go developers. General programming allows developers to represent functions and data structures by computing types according to Go language team.
“Without generics, you reduce the possibility of code reuse,” Longmeyer said. “So you just need to write a little more code to do the same. And that can seem like a big hurdle if you come up with something based on generics, like Java. ”
У Go 2020 Developer Survey26% of respondents said that Go lacks the language functions they need, and 88% of respondents named generics as a critically absent function. The survey also found that 18% of respondents could not use Go because it did not contain generics.
This pain point was eliminated in March 2022 with the release of Go 1.18. This release introduces generic support with a commitment to add support for more sophisticated generic uses in future releases.
“Go 1.18 is a mass release that includes new features, improved performance and the biggest language change. We can’t say that the development of Go 1.18 parts started more than ten years ago when we first released Go, ”the Go team wrote in blog post announcing the release.
Go thrives in large-scale software development
According to Eriksen, Google has paid a lot of attention to large-scale software development for Go. “It’s not just about creating small programs, it’s about teams building software over long periods of time,” Eriksen said.
This is not to say that Go is only popular with the largest companies. In fact, according to Developer Poll Go 2021, most survey respondents worked in teams of less than 10 people. Twenty-eight percent of respondents worked in small and medium-sized businesses, 25% – in startups.
Go is especially suitable for large applications because of the compilation speed. According to Eriksen, compiling a Java application that takes 10 minutes or even an hour to compile could take several minutes if written in Go.
Go is a leader in supply chain security
Supply chain security was paramount for many people last year, especially in the US.
According to Eriksen, the Go team has taken this into account, paying close attention to ensuring that security vulnerabilities do not appear before a project based on some dependency in use.
“I think Go is a leader in this field far beyond anything else with its approach to supply chain security,” he said.
Sharing knowledge is a big plus in Go
One of Longmire’s favorite things about Go is the documentation. She said that reading the documentation is how she learned the language.
“They have interactive documentation, which is very nice,” she said. “And you can find everything you’re looking for, about how to use something or how to customize something that is very rare in new languages.”
She also said that the syntax of Go is very readable, which is very helpful when working with obsolete code bases or reading code from other developers.
Ng reiterated this view, saying that knowledge sharing in the community has really improved over the years. This, he said, is another way Go has benefited from CNCF because so many CNCF projects are written on Go, and many are feeding each other.