Programming Languages

Who is the Go Developer?

2 Jul 2015 9:27am, by

Gophercon is July 7-10 in Denver and The New Stack is a media sponsor. This is the event to attend if you are at all interested in the Go progamming language. We’ll be attending, podcasting from the CoreOS booth, in the hallways, looking for stories, taking in the keynotes. Attending Gophercon? Tweet Alex Williams and let him know you’ll be there. We’re always looking for stories about Go and writers, too, who have an interest in writing about this fast emerging programming language.

As part of my job at DeferPanic, I spend a lot of time talking to a lot of gophers throughout the world. Chennai, Tel Aviv, Sydney, London, Berlin, New York City, Rio de Janeiro, Cape Town, Toronto — you name it, there are probably gophers coding near you.

What’s interesting is that when I talk to non-Gophers, many people are still holding on to this idea that it is somehow a niche language. Some people think it is a “systems” language. Some people think it is a “hipster” language.

Those ideas, however, are so far from the truth. I think a lot of it has to do with the fact that there are common misconceptions of who and what the gopher community is actually composed of. You could understand why people have this impression when you hear people like Brian Cantrill of DTrace/Joyent fame remark at the recent DockerCon that Go was a “steampunk” language.

There are over 15,000 gophers on the mailing list for golang-nuts, and 8,000 stars on GitHub for the main language repository. There are many, many more people that don’t even know of the mailing list. There’s a whole generation of developers that don’t even use mailing lists.

You might think that all the Go users are xooglers or hipsters at some fancy-shmancy, unicorn-riding, social/local/mobile startup in the SoMa district of San Francisco. (For the record — there are a ton of startups using Go in SoMa.)

What’s more mysterious than who the average gopher is, is how popular the Go programming language actually, truly is.

China/Windows

Did you know China boasts the largest number of Go users in the world?

Andrew Gerrand, a core team member of Go, remarked at last year’s GopherCon his thoughts about China.

In fact, if you look at the Google trends for Golang (gophers found out early on that Googling for ‘Go’ was, ahem, a ‘no go’),  the U.S. is only ranked ninth in the list.

trends

If you drill down to the city view, Mountain View (Google Headquarters) is second, San Francisco is fifth, with a cornucopia of Chinese cities taking the entirety of the rest of the list. We can confirm the interest from China just from our own personal experience.

We’ve had people try to pay through Stripe from China and sadly got denied (Stripe doesn’t support Bank of China directly, although they are apparently rolling out an Alipay option). (Hook a brother up, Collisons?)

We’ve had people complain that the Great Firewall sometimes severely throttles our traffic from China, since it’s 100 percent encrypted. It’s really easy to see the horrible latency from test servers in places like Guangzhou versus other cities. Damn those subversive garbage collection (GC) latency stats.

Maybe we can get them to install some fake certification authorities (CAs) like the US government does instead of throttling?

Nonetheless, China definitely boasts a large portion of gophers on Windows, which confuses a lot of people in the Western world.

Who knows what the future will hold? Microsoft has basically done a complete 180 when it comes to developer relations in the past so many months.

Open Source

Remember the incredible amount of container hype in the past year? Oh wait, that’s still going on. The entire container ecosystem is being built on the back of the Go programming language. Countless companies have been setup in the past year alone, and they are heavily utilizing Go.

Both Docker and Kubernetes — two of the most popular open source projects in the past year— are both written in Go. Docker is rocking over 22,000 stars on GitHub currently. How many potential Go developers does that expose itself to? Kubernetes is just a few hundred stars less than the main Go language repo itself.

What happens when one of those users of Docker needs to patch something, or fix a bug, or customize the code? They have to write Go. This is precisely how Go is spreading itself.

Most new DevOps tools coming out these days are entirely written in Go, and it is the backdoor into organizations. Witness companies in this area that are surfacing, such as HashiCorp and InfluxDB.

Remember Bitcoin and the swath of companies surrounding crypto currencies and blockchains? The vast majority of these companies and projects are using Go.

I find this notable, because once a company has heavily adopted a language and they’ve built an engineering team around that language, it’s rather difficult to move everyone to another language.

When you have entire ecosystems (such as the container ecosystem and crypto currency ecosystem) locked in to a particular language, this results in massive drivers of growth.

As of right now, GitHub has flagged an eye-popping 72,000 repositories written in Go — and that’s just open source, which, of course, is the tip of the iceberg, and it’s rather difficult to tell how large the iceberg beneath the ocean is. Can we get someone at GitHub to confirm this?

It’s really easy to point out that there are an estimated nine million developers and huge swaths of open source for languages — such as Java, that live on the Java virtual machine (JVM) — but you are comparing a language that is 20 years old to one that hasn’t had it’s sixth birthday yet. It hasn’t even gotten it’s first letter book from kindergarten yet.

Jobs

One of the most common requests I get as someone who spends their time talking to companies using Go is, “Do you know of any gophers that we can hire, like yesterday?”

If you are a developer thinking you need to give yourself a pay raise, or you want to explore a new company or a new city, now might be the time to learn Go. The demand is red hot.

After all, no one has seven to eight years of professional working experience with Go, and the community is still figuring best practices for various tasks.

Companies Using Go

Over half of the top 20 companies in the U.S. ranked by market capitalization are currently using Go.

Recognize a few of these names?

  • Chevron
  • Verizon
  • Disney
  • Amazon
  • Walmart
  • Facebook
  • General Electric
  • Google
  • Microsoft
  • Apple

If you look closely at this list you’ll also see that all the tech giants are using Go in some fashion:

  • Amazon
  • Google
  • Facebook
  • Apple
  • Microsoft

If that isn’t telling, I don’t know what is.

The largest company by employee count is, of course, Walmart at 2.2 million employees, although I wouldn’t be surprised if the U.S. Department of Denfense or the People’s Liberation Army of China doesn’t have a few gophers in their ranks.

The on-demand economy is rife with Go architecture. This makes sense, seeing as the market sector has been rather hot recently, so there has been a lot of new entrants.

A few years ago, JavaScript or Ruby, with their respective frameworks Node.js and RoR, might have been chosen for new companies, but now that crown is moving strongly towards Go.

The reason is simple: you can be just as fast or faster, and just as productive or even more so with Go than you could with the dynamically typed languages. It has found a sweet spot between the traditional statically typed languages, such as Java and C++, and the dynamically typed scripting ones.

That’s the short reason. The longer reason is that small shops in the past tended to pick dynamically typed languages because they thought it allowed them to move fast. I think there is a sea change going on with this thought process in the wider developer consciousness.

Dynamically typed languages are typically incredibly slow, bug-ridden, hard to test, and they create massive capital expenditure (capex) spend. When companies see their code review time speed up, regression rate slow down, and more importantly their AWS bill go from $20,000 per month to $5,000 per month, it’s a no-brainer.

Market Segments of Go Companies

Now, I’m going to throw some lies, damn lies, and statistics at you all — I’m more than happy to be corrected with better data, and I know of at least two companies that probably have that: they both start with G and rhyme with oogle and ithub.

Please take this data with a grain of salt — there are quite a few biases influencing it. For this data we have a sample size of 500 companies using Go, and they are largely composed of companies that were either advertising for engineering jobs or had open source code available; that is to say, there are a lot of companies using Go that we don’t even know about.

500_sample_size

From our own data we see what appears to be a large early adopter segment. Over a third of the companies we know who are using Go are in the developer tools/API business. Another 17 percent are development agencies.

This makes a lot of sense.

It’s very interesting, because that’s half of the companies that arguably are large drivers of growth for the language. This is especially true for the agencies as they churn through quite a few projects for third party companies, which produces a flywheel effect.

Next up we see FinTech taking an 11 percent share, with the majority being built on the blockchain; while social, media, and retail each come in at seven percent.

Ad tech, surprisingly, is only slightly more prominent than gaming, healthcare and EdTech.

I don’t pretend to know why all of these companies are picking up Go, and I sure as hell can’t explain some of the really weird data, but whatever is going on, one thing is very clear: Go is going to become the most widely used language within a matter of years.

Go is the future.

CoreOS and Docker are sponsors of The New Stack.

Feature image: “Happy crowd” by Ben Stanfield is licensed under CC BY-SA 2.0.

A newsletter digest of the week’s most important stories & analyses.

View / Add Comments

Please stay on topic and be respectful of others. Review our Terms of Use.