blob: 4a33db025552195effe1f9984a8aff9f5d60c965 [file] [log] [blame]
Go Turns 10
8 Nov 2019
Russ Cox, for the Go team
rsc@golang.org
* Introduction
Happy birthday, Go!
This weekend we celebrate the 10th anniversary of
[[https://opensource.googleblog.com/2009/11/hey-ho-lets-go.html][the Go release]],
marking the 10th birthday of Go as an open-source programming language
and ecosystem for building modern networked software.
To mark the occasion,
[[https://twitter.com/reneefrench][Renee French]],
the creator of the
[[https://blog.golang.org/gopher][Go gopher]],
painted this delightful scene:
.html 10years/img1.html
.image 10years/gopher10th-small.jpg _ 850
.html 10years/img2.html
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 didnt 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 Gos 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 [[https://research.swtch.com/gophercount][a million developers worldwide]].
Gos 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
[[https://www.cncf.io/projects/][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
[[https://gobot.io][GoBot]] and [[https://tinygo.org/][TinyGo]]
to detecting cancer with
[[https://medium.com/grail-eng/bigslice-a-cluster-computing-system-for-go-7e03acd2419b][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 Gos success isnt just about the language.
Its 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.
The `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
[[https://blog.golang.org/ismmkeynote][state-of-the-art garbage collector]],
and [[https://golang.org/doc/install/source#introduction][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` `get`.
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
[[https://www.meetup.com/pro/go][over 150 Go meetup groups with over 90,000 members]].
[[https://golangbridge.org][GoBridge]]
and
[[https://medium.com/@carolynvs/www-loves-gobridge-ccb26309f667][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
[[https://research.swtch.com/gophercount][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 were 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 peoples 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
[[https://twitter.com/search?q=%23GoTurns10][#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.
Lets make the next one even more incredible!
.html 10years/pin1.html
.image 10years/gopher10th-pin-small.jpg _ 150
.html 10years/pin2.html