The Doors Go Has Opened

Go is bringing Gotham, and distributed systems, out of the darkness. Credit Ashley McNamara and Renee French
  • Kubernetes: a container orchestrator used in production by large companies to run distributed services. Other companies have been started around building, hosting and supporting this software
  • etcd: a strongly consistent key/value store. It’s used in mission critical distributed systems and in practice has become the open-source equivalent of Google’s Chubby. It’s a central component of Kubernetes
  • Docker: the most popular container runtime on the market right now. Also a central component of Kubernetes

Toolchain

Whatever you’re building, you focus on building it. Go already figured out the tooling for you

A Single Binary

Just ship a binary to your server and you’re done

  • etcdctl: the CLI for etcd
  • kubectl: the CLI for Kubernetes
  • docker: the CLI for the Docker server
  • dep: the CLI for the new Golang package manager

Concurrency

Instead of wrestling with threads, you put 'go’ in front of a function and it’s running concurrently

Garbage Collection

We can have a systems programming language and GC at the same time

  1. Nothing will ever be easier than not having to think about memory
  2. We can “sit in the middle” and build a systems programming language with GC

Standard Library

The ethos is all about agreeing on ideas, codifying them, and reusing them

  • io.Reader and io.Writer are the ways to “pipe” data across function boundaries. These interfaces are probably the most implemented across the entire Go ecosystem
  • context is the way to provide cancellation, timeout, and value propagation semantics to goroutines
  • error is the way to return and describe errors from functions

Conclusion

Go will become the standard programming language for several large domains in software engineering

--

--

--

Gopher, containerizer, and Kubernetes-er

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Dispatch — A Multi-Tenant FaaS

Worker node in a Supervisor Cluster is showing Not Ready?

List Comprehensions in Python

Build Incrementation Techniques for iOS Release Train

Why Learning The Fundamentals Of Programming Matters

Call for Volunteers: NumFOCUS Project Incubator

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Aaron Schlesinger

Aaron Schlesinger

Gopher, containerizer, and Kubernetes-er

More from Medium

BatchConn — sendmmsg/recvmmsg in Go

Network Visualization

Modern Programming Language : An Introduction to GoLang

GOLang , DevOps, Technology

Gomega Matcher : A guide to developing your custom tests in Golang

A Sip of Go Log