Amazon Web Services has added Google's increasingly popular Go to its roster of software developer kits (SDKs) for widely-used programming languages.
Go, a language created by Googlers Robert Griesemer, Rob Pike, and Ken Thompson in 2007 for faster programming on Google-scale systems, is on the rise among developers - so much so, that Amazon has started offering a Go SDK to meet developer demand.
The Go SDK that Amazon Web Services (AWS) will be offering developers is still in an "experimental state" - it's highly untested - and work on it is ongoing.
And rather than build the SDK from scratch, AWS has inherited its Go SDK from payments startup Stripe.
"This SDK, principally authored by Coda Hale, was developed using model-based generation techniques very similar to how our other official AWS SDKs are developed. We reached out and began discussing possibly contributing to the project, and Stripe offered to transfer ownership of the project to AWS. We gladly agreed to take over the project and to turn it into an officially supported SDK product," said AWS senior product manager Peter Moon.
For its part, Stripe launched a library for Go last year and built part of its Checkout service using the language, while Google put Go to work at YouTube back in 2012, shortly after Go 1 was released. Libcontainer, a key component of Docker's popular container technology, is also written in Go.
According to golang.org, the lanugage's official site, Go offers developers a number of advantages:
- It is possible to compile a large Go program in a few seconds on a single computer.
- Go provides a model for software construction that makes dependency analysis easy and avoids much of the overhead of C-style include files and libraries.
- Go's type system has no hierarchy, so no time is spent defining the relationships between types. Also, although Go has static types the language attempts to make types feel lighter weight than in typical OO languages.
- Go is fully garbage-collected and provides fundamental support for concurrent execution and communication.
- By its design, Go proposes an approach for the construction of system software on multicore machines.
Read more on this story