8
SD Times
May 2022
www.sdtimes.com
The language of cloud-native development
T
he Go programming language is continuing on a path of accelerated adoption and is beloved by the developers that use it. This is evidenced by several recent developer surveys, as well as sentiments expressed by developers who use the language. In JetBrains’ 2021 State of Developer Ecosystem report, Go was among the top five languages that developers were planning to adopt. It also was one of the top five languages developers were learning in the last year and was one of the five fastest growing languages too. In the official 2021 Go developer survey, 92% of survey respondents said their satisfaction with Go was very high. Go is the language of the cloud, so it’s no wonder that it’s continued to increase in popularity over the past few years as cloud-native development becomes more and more prevalent. “If you do stuff on any cloud platform … people want to standardize on Go,” said Steve Ng, principal developer relations lead of Asia Pacific and Japan at observability company New Relic. What makes Go the “language of the cloud?” According to Andre Eriksen,
BY JENNA SARGENT founder of back-end development company Encore.dev, there are a few reasons for this. One reason is that Docker was originally built using Go. In addition, a lot of the Cloud Native Computing Foundation (CNCF) projects have been built in Go, according to Eriksen. Ng added that a lot of those CNCF projects also interact with and feed off each other. Another contributing factor is that Go is an incredibly reliable language, partly because of the way it handles errors. It encourages developers to check for errors as they code, rather than relying on throwing and catching exceptions like in other programming languages. “And the way you write code, when you’re using a programming language [that uses exceptions], is you kind of stop thinking about errors, and you just assume everything is gonna go well and if something goes wrong, an exception will be thrown somewhere, and we’ll try to handle that,” said Eriksen. “And that works very well, when everything goes well. And then it goes terribly when something goes wrong. And Go does it very differently, where errors are just any other value. And it kind of forces you
to think about errors much more, every time you are doing an operation in Go, like when you’re writing to a file or you’re sending a request over the internet over HTTP, Go forces you just to think about what if this goes wrong, and as a result, the reliability systems built with Go tends to be very, very high.” Another reason people may see it as reliable is because it has the backing of Google. The language was developed at Google in 2009 and version 1.0 was released publicly in 2012. Go is still maintained by the company today and is used in its production environments too. One nice thing, according to Eriksen, is that Google has taken a conservative view on changing the language. The changes that get made to the language are usually to the edges, rather than the core language itself. Google has made a commitment to backwards compatibility in Go. According to Eriksen, this means that when the language gets updated, those updates aren’t going to break your application. The exception to this has been if there is a major security vulnerability that needs to be addressed. Eriksen added: “If you look at other programming languages… no one