The Go Programming Language turns two
blog.golang.org
blog.golang.org
Thanks, Go!
I find this to be a big advantage for using Go over something like Python or Java. You still need any dynamically linked DLLs, but all the Go code itself and the runtime is statically compiled and linked into the executable produced by gc.
As for the concerns about it not being used in production, there's Heroku: http://blog.golang.org/2011/04/go-at-heroku.html
All this is completely ignoring the fact that the language itself has a really nice syntax, and some excellent concurrency support. Nothing it does is particularly new, but I think Go is greater than the sum of its parts.
Info here:
http://www.theregister.co.uk/2011/05/05/google_go/print.html
http://blog.golang.org/2011/04/go-at-heroku.html
http://xph.us/2011/04/13/introducing-doozer.html
And of course google use it internally.
http://tinkercad.com http://techcrunch.com/2011/11/08/tinkercad-raises-1-million/ (HN user kaib can say more)
[1] http://iron.io/
[2] http://blog.simpleworker.com/2011/11/simpleworker-has-shiny-...
For an unofficial and incomplete list see: http://go-lang.cat-v.org/organizations-using-go
At Google, Go seems to be competing with Python. http://www.quora.com/Which-is-easier-to-program-in-Python-or...
Looks like for certain problems that don't need to interoperate with the larger system and don't need big library support, Go can sneak in.
AppEngine doesn't support Go (no, without windows Go SDK it is not supported).
Android doesn't support native full featured Go apps, although in theory it seems like a perfect match.
Given that lack of support, I'm not even sure it is as widely used inside Google, or the story about inside usage is just a marketing.
As for Android, it would be a colossal undertaking to implement native support for writing Android apps in Go. How can you say it's "half-hearted" to choose not to do such a massive project? Engineering time is not an infinite resource.
Unfortunately it is Google's policy not to comment on internal infrastructure, otherwise I could comment more on our internal usage of Go. But think logically: why would Google continue to invest the time of some of its best engineers (myself excluded) in something that wasn't of benefit to Google?
"AppEngine doesn't support Go" Go itself is still pretty experimental. Changes are still made and with preparation for Go 1 they are making many backwards incompatible changes. They plan to remove the experimental tag on AppEngine the same time Go 1 is released. Until go itself becomes stable, they can hardly call the AppEngine version stable.
"no, without windows Go SDK it is not supported" Considering that the compiler they use for go (gc) is not supported on windows, that is not much of a surprise.
"Android doesn't support native full featured Go apps, although in theory it seems like a perfect match." This does not seem like a very good match at all. First, android GUI is programmed in java, it makes very little sense to try and make some sort of bridge between go and the java gui. Also, go at this stage is much better for servers than client facing applications. You know what would be an awesome fit? Go on AppEngine...
"Given that lack of support, I'm not even sure it is as widely used inside Google, or the story about inside usage is just a marketing." So far you have given evidence that Go is not being supported for people who use Windows and for programming phones. That means Google does not use it in house? The fact that AppEngine supports Go is an indication of the opposite. They probably wanted Go on AppEngine so they could use it themselves.
And full windows support for Go wouldn't be that hard. Many open source projects have windows support thanks to mingw/msys. Having Go and Go appengine fully supported on Windows wouldn't take more than 1 full time engineer. If that is too much to ask for Google, than Go is not even half-hearted supported.
For android, I know that it would be a bad choice to bridge it to Java UI framework. I was thinking of having native Go SDK for Android that will have its own UI and other API, which doesn't have to be similar to Java. Gooogle has already separate appengine SDKs for Python, Java and Go. I know that it would be a lot of work to do the same for Android, but that will at least show that Google is really pushing behind Go.
- Go (gc) runs on Windows just fine. Go under Windows is now well-supported. We'll do a better job of communicating this once we (the Go team) are able to provide Google-built Windows binaries (currently they're provided by the community). This will come with Go 1 early next year.
- Go for App Engine is near feature parity with the Java and Python runtimes. It will come out of experimental early next year.
- The Go App Engine SDK will be available for Windows early next year.
I'm a bit insulted that you call our (very strenuous) efforts half-hearted, but I guess you can't please everyone.
One thing he did was write this memcached client lib that is used for Go on AppEngine: https://github.com/bradfitz/gomemcache
But I'm not sure a new memcached server in Go is coming, I think he is more interested in his 'copious' spare time to hack on Camlistore: http://camlistore.org which is a really cool but a bit hard to describe project with lots of Go code.