Go at I/O: Frequently Asked Questions
27 May 2010
Tags: appengine

Andrew Gerrand

* Introduction

Among the high-profile product launches at Google I/O last week,
our small team gave presentations to packed rooms and met many present and
future Go programmers.
It was especially gratifying to meet with so many people who,
after learning a bit about Go, were excited by the potential benefits (both
immediate and long-term) they could gain from using it.

We were asked a lot of good questions during I/O, and in this post I'd like to recap and expand upon some of them.

How suitable is Go for production systems?
Go is ready and stable now. We are pleased to report that Google is using
Go for some production systems,
and they are performing well.
Of course there is still room for improvement - that's why we're continuing
to work on the language,
libraries, tools, and runtime.

Do you have plans to implement generics?
Many proposals for generics-like features have been mooted both publicly and internally,
but as yet we haven't found a proposal that is consistent with the rest of the language.
We think that one of Go's key strengths is its simplicity,
so we are wary of introducing new features that might make the language
more difficult to understand.
Additionally, the more Go code we write (and thus the better we learn how
to write Go code ourselves),
the less we feel the need for such a language feature.

Do you have any plans to support GPU programming?
We don't have any immediate plans to do this,
but as Go is architecture-agnostic it's quite possible.
The ability to launch a goroutine that runs on a different processor architecture,
and to use channels to communicate between goroutines running on separate architectures,
seem like good ideas.

Are there plans to support Go under App Engine?
Both the Go and App Engine teams would like to see this happen.
As always, it is a question of resources and priorities as to if and when
it will become a reality.

Are there plans to support Go under Android?
Both Go compilers support ARM code generation, so it is possible.
While we think Go would be a great language for writing mobile applications,
Android support is not something that's being actively worked on.

What can I use Go for?
Go was designed with systems programming in mind.
Servers, clients, databases, caches, balancers,
distributors - these are applications Go is obviously useful for,
and  this is how we have begun to use it within Google.
However, since Go's open-source release, the community has found a diverse
range of applications for the language.
From web apps to games to graphics tools,
Go promises to shine as a general-purpose programming language.
The potential is only limited by library support,
which is improving at a tremendous rate.
Additionally, educators have expressed interest in using Go to teach programming,
citing its succinct syntax and consistency as well-suited to the task.

Thanks to everyone who attended our presentations,
or came to talk with us at Office Hours.
We hope to see you again at future events.

The video of [[http://code.google.com/events/io/2010/sessions/go-programming.html][Rob and Russ' talk]]
will be uploaded to YouTube within the next week,
and will then be posted on this blog.
