| # Go at I/O: Frequently Asked Questions |
| 27 May 2010 |
| Tags: appengine |
| Summary: Q&A about Go from Google I/O 2010. |
| OldURL: /go-at-io-frequently-asked-questions |
| |
| Andrew Gerrand |
| |
| ## |
| |
| 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 [Rob and Russ' talk](http://code.google.com/events/io/2010/sessions/go-programming.html) |
| will be uploaded to YouTube within the next week, |
| and will then be posted on this blog. |