Google App Engine Gets Support for Go

Google added GAE support for Go with SDK 1.5.2. Developers can write and test Go applications locally on Linux and Mac OS X and run them on GAE.

Google App Engine SDK 1.5.2 comes with a new addition, tools to build applications written with Go and to run them on GAE. Go is Google’s pet language that resembles C but adds features such as dynamic typing, reflection, garbage collection, concurrency and parallelism.

The SDK contains the Python development server providing a sandbox to run and test Go applications locally before uploading them to GAE in order to run them inside the Go runtime environment. The server simulates a Datastore and GAE services so the developer can test most of the application locally.

The SDK comes with a build service, automatically rebuilding the code when the source changes, so the user does not have to directly interact with the compiler.

Go applications can access all the standard services – Datastore, Blobstore, Channel, Mail, Memcache, Task Queue, etc. –, but the sandbox introduces some limitations, for example, the application cannot write to the local file system or to make arbitrary network connections. The Go runtime environment provides support for goroutines, which are allocated a single thread, and does not support parallel execution yet, which may be provided later.

Developers are reminded that the GAE Go environment is still experimental, so it is wise not to start writing commercial applications yet. The SDK is available on Linux and Mac OS X both on 32 and 64-bit, and will probably be made available on Windows as soon as Go is ported to Microsoft’s OS, a process that is underway but not yet finished, according to Go Windows Support wiki page.