Go Turns 10
Happy birthday, Go!
This weekend we celebrate the 10th anniversary of the Go release, marking the 10th birthday of Go as an open-source programming language and ecosystem for building modern networked software.
Celebrating 10 years of Go makes me think back to early November 2009, when we were getting ready to share Go with the world. We didn’t know what kind of reaction to expect, whether anyone would care about this little language. I hoped that even if no one ended up using Go, we would at least have drawn attention to some good ideas, especially Go’s approach to concurrency and interfaces, that could influence follow-on languages.
Once it became clear that people were excited about Go, I looked at the history of popular languages like C, C++, Perl, Python, and Ruby, examining how long each took to gain widespread adoption. For example, Perl seemed to me to have appeared fully-formed in the mid-to-late 1990s, with CGI scripts and the web, but it was first released in 1987. This pattern repeated for almost every language I looked at: it seems to take roughly a decade of quiet, steady improvement and dissemination before a new language really takes off.
I wondered: where would Go be after a decade?
Today, we can answer that question: Go is everywhere, used by at least a million developers worldwide.
Go’s original target was networked system infrastructure, what we now call cloud software. Every major cloud provider today uses core cloud infrastructure written in Go, such as Docker, Etcd, Istio, Kubernetes, Prometheus, and Terraform; the majority of the Cloud Native Computing Foundation’s projects are written in Go. Countless companies are using Go to move their own work to the cloud as well, from startups building from scratch to enterprises modernizing their software stack. Go has also found adoption well beyond its original cloud target, with uses ranging from controlling tiny embedded systems with GoBot and TinyGo to detecting cancer with massive big data analysis and machine learning at GRAIL, and everything in between.
All this is to say that Go has succeeded beyond our wildest dreams. And Go’s success isn’t just about the language. It’s about the language, the ecosystem, and especially the community working together.
In 2009, the language was a good idea with a working sketch of an implementation.
go command did not exist:
we ran commands like
6g to compile and
6l to link binaries,
automated with makefiles.
We typed semicolons at the ends of statements.
The entire program stopped during garbage collection,
which then struggled to make good use of two cores.
Go ran only on Linux and Mac, on 32- and 64-bit x86 and 32-bit ARM.
Over the last decade, with the help of Go developers all over the world, we have evolved this idea and sketch into a productive language with fantastic tooling, a production-quality implementation, a state-of-the-art garbage collector, and ports to 12 operating systems and 10 architectures.
Any programming language needs the support of a thriving ecosystem.
The open source release was the seed for that ecosystem,
but since then, many people have contributed their time and talent
to fill the Go ecosystem with great tutorials, books, courses, blog posts,
podcasts, tools, integrations, and of course reusable Go packages importable with
Go could never have succeeded without the support of this ecosystem.
Of course, the ecosystem needs the support of a thriving community. In 2019 there are dozens of Go conferences all over the world, along with over 150 Go meetup groups with over 90,000 members. GoBridge and Women Who Go help bring new voices into the Go community, through mentoring, training, and conference scholarships. This year alone, they have taught hundreds of people from traditionally underrepresented groups at workshops where community members teach and mentor those new to Go.
There are over a million Go developers worldwide, and companies all over the globe are looking to hire more. In fact, people often tell us that learning Go helped them get their first jobs in the tech industry. In the end, what we’re most proud of about Go is not a well-designed feature or a clever bit of code but the positive impact Go has had in so many people’s lives. We aimed to create a language that would help us be better developers, and we are thrilled that Go has helped so many others.
As #GoTurns10, I hope everyone will take a moment to celebrate the Go community and all we have achieved. On behalf of the entire Go team at Google, thank you to everyone who has joined us over the past decade. Let’s make the next one even more incredible!