Go Programming Language for System Administration

OSCON 2013 Speaker Series

Go is the first major systems language to emerge in over a decade, even though computing continues to change at a rapid pace—computers are smaller, faster, and can execute operations in parallel via multi core processors. Even languages like Python and Ruby have grown in popularity in recent years among system administrators, operations, and DevOps personnel. Yet, as a relatively new kid on the block, Go is a versatile and robust language that has plenty to offer.

Let’s go through the list:

Open: It’s Open Source—Go has been open source software since November 2009, reaching Version 1 in March of 2012. It includes a language specification, standard libraries, and custom tools. Being open, Go has long-term stability.

Concurrency: Go provides support for concurrent execution and communication. There is no need to learn multiple ways of dealing with threads. Go greatly simplifies threading by providing goroutines and channels.

Fast compilation: Go compiles at a break-neck speed. It has robust dependency analysis and a rigid dependency specification to avoid wasting time with unused dependencies.

One binary to rule them all: Have you ever had to distribute your script or binary to multiple systems, then worry about libraries and dependencies in general? With Go, you simply don’t have to worry about dependencies. Gc, Go’s default compiler statically links its binaries. You can use go build to compile your code and then distribute it to multiple machines with minimal effort.

Feature rich standard library: The language has a great standard library and many third party Go packages maintained at Bitbucket, Github, Launchpad, or Google Project Hosting.

Readability: Go ceases the debate about the best style of programming by providing a code formatter tool (gofmt) and enforcing it in its standard library. The code you write today will be much easier to read and maintain in a few months or even years by simply sticking to gofmt.

And, Go is a language that grows with you. Take the tour

tags: , , ,