When a team of Google coders looked out across the collection of computer languages in 2007, they saw hundreds of perfectly good tools for writing software but none that offered the right features for Google. That is, a language that supported building the Google vision of a galaxy of software packages working together in Google’s vast collection of servers.
Some languages were too focused on the lowest bit-banging levels of the stack. Others were too complex, larded with features that would only get in the way. The Google developers wanted a language that was simple enough to be learned in a few hours but just complex enough to handle the flow of information across the modern Internet.
The solution was Go, a language that will look familiar to programmers who were raised on C, Java, or JavaScript—in other words, just about every programmer. Go has just enough features to write some loops and coding blocks but none of the fancier ideas that take time to master. The built-in routines are optimized for getting data to and from the Internet. Everything else, no matter how clever, is left out.
Go is a great option for teams building applications based on microservice architectures because these constellations of services are just smaller versions of the galaxy that Google runs today. Your project may not offer email, maps, search, and countless other cloud services to the world, but it could still end up offering dozens of different smaller information services to the users. Each microservice project is just a micro—or maybe a nano—version of Google.
Google’s decision to open source Go was a wise one. The language has nurtured thousands of projects that offer the building blocks for your web project. This rich tradition makes it easier to work in parallel in other teams to create your own constellation.