Go, the Programming Language of the Cloud
With major cloud vendors like AWS Lambda supporting Go, the Google-born Golang is rapidly becoming the language of choice for many cloud native operations. Steve Francia, who joined Google in 2016 to become its product lead for Go, recently shared insights into its usage in cloud operations, and elsewhere.
He also shared a fresh status update on the Go Cloud Development Kit, while delving into the proposition that not only is Go the language of cloud infrastructure, it’s also even becoming the language of the entire cloud.
I’d wanted to ask you about Go’s role in Docker and Kubernetes. You were at one time the vice president and chief operator at Docker…
Yeah, I’m personally no longer involved with Docker, but I can say as a member of our Go ecosystem, that, you know — Go has played a significant role in the creation of both Docker, Kubernetes, Istio, and many of the other cloud-related technologies. In fact, you know, I think it’d be reasonable to say that the modern cloud is written in Go. A number of years ago an analyst wrote that Go is the language of cloud infrastructure, and I think that has been proven overwhelmingly true — most cloud infrastructure things have been written in Go.
And we’re increasingly seeing that Go is not only the language of cloud infrastructure but the entire language of the cloud. We’re seeing more significant adoption of Go applications on the cloud than other languages, and we’re also seeing that a lot of people are looking to Go. And it’s a very natural fit for the cloud, with asynchronous built in. Its native feature set is really a great fit for the microservice architecture that is very common in the cloud — and its performance and cost savings. So that kind of triple feature set has been a really big draw for a lot of people towards building cloud applications in Go…
And how do they feel about Go within Google? I know that Go is widely used in production at Google. So what do Google developers say about Go?
There’s — you know, there’s general support for it across Google. I think there’s an excitement to work with a language that we created in-house, you know? And we’re seeing good and steady adoption across Google. There’s not much detail I can provide on that, but Go is used throughout the company, in a lot of places. And we’re very excited about that…
This is an interesting place to be because obviously, I represent the Go team, but we are also, you know, sponsored by and part of Google, which is one of the cloud vendors. And we try and keep a neutral party, as part of it.
So where does Go stand now with the major cloud vendors?
One of our more exciting projects that we’ve been working on this year is — speaking to Go as the language of the cloud — we’ve built a project which is more or less the standard library for cloud applications. We call it — let’s see, we just settled on a name this morning, so I want to get it exactly right… It’s the “Go Cloud Development Kit.” And effectively, it’s like a standard library for the cloud. We’re looking to make an announcement later this quarter when we have something more significant to announce.
Right now we’re doing early testing with a subset of users. It’s been integrated into a number of major open source projects, one of which I’m associated with, but (laughs) I actually had no part in it. Hugo is one of our more popular website engines that’s written in Go, and we recently added support for cloud publishing using Go Cloud Development Kit libraries…
Much like the Go standard library may cross — you know, you can write an application, and just compile it for Mac, compile it for Linux or Windows or different architectures, and it just runs, and it runs without really any extra code. So, you know, the promise of true portability, the Go standard library delivered well on. Our goal is to do the same thing for cloud.
Initially, we’re supporting the big three — Amazon, Azure, and Google Cloud Platform. We’re also having open development, and we’ve already talked to a number of other cloud providers about providing their own backends for it. And we’re working with Microsoft on this as well, so we’ve had contributions from across the cloud providers for it.
That’s one initiative that we’re working on that we think is really important.
We did a survey in September which found that 27 percent of serverless developers said they planned to use Go in the next 18 months. Have you seen any interesting Go projects out in the wild?
Yeah, absolutely, there’s a lot of different spaces where Go has actually made a pretty significant impact. We often think of the cloud first, but the web is also a pretty significant place, where a number of Go projects have been significant. As well as, you know — it’s interesting to talk about this, but even the cryptocurrency space has been disrupted by Go. Ethereum is primarily written in Go. A lot of networking projects are written in Go — and of course, Kubernetes and Docker and Istio…
In November GitHub’s annual “State of the Octoverse” report concluded there are 1.5x more contributors writing Go this year than last year. Are you also seeing a big spike in new people migrating to Go?
Yeah, we’ve seen a very significant increase of Go users over the last — really, 18 months. You know, so we have some hard numbers. According to the Stack Overflow survey, which tracks all these things, there was a 76% increase from 2017 to 2018.
[Steve later supplied us with this calculation based on the percentage of Go users in Stack Overflow’s Developer Surveys — multiplied by estimates of the total developer population from Evans Data.]
All Respondents: 7.1 percent using Go
Estimated Go developers: 23M * 7.1% = 1.633M
All Respondents (second tab): 4.2% using Go
Estimated Go developers: 22M * 4.2% = 924K
Year-over-year growth = 1.633M / 924K = 76%
And we’ve seen a number of other things. GitHub is another strong indicator, where with the pull request count on GitHub, Go saw a very significant increase…
Even just from 2016 to 2017, Go saw 96,879 more Pull requests opened on GitHub — an increase of 51.4 percent (to 285,000). But what’s your sense of what’s happening in the Go community now?
At this point, it’s GitHub’s #4 language, by pull request. Which is phenomenal.
So yeah, we’ve seen a very significant increase…
It’s an exciting time to be a part of Go. Vendors like IntelliJ, Microsoft’s Visual Studio Code, JFrog Artifactory, are all starting to realize that Go is a place where a lot of developers want to be, so they’ve built and released supporting products. And we’re seeing that from a number of other vendors. Obviously, cloud platforms are very aware of Go, and are creating solutions, often with Go first.
It’s an exciting time. And on the community side, we’re seeing a lot of efforts across the world. The number of conferences is growing significantly, about 30 percent, year over year. I can’t remember the exact number, but I think we’re between 15 and 20 conferences worldwide this year, and the number of attendees is also increasing, so It’s really an exciting time to be a part of it. And all the conferences are organized by community members, so it’s a very grassroots effort… We have conferences in South America in their native languages, and Japan in their native languages, and China in their native languages, as well as throughout the world, in a variety of languages…
What it really is is bringing Go to the people, where they are.