The curious case of Golang
Introduction
Golang (aka Go) is an open source programming language created by google and released publicly in 2012. In the recent past it has been widely adopted by large number of organisations which has enabled a large ecosystem of partners and communities for a variety of software development purposes.
Go comes with in-built support for concurrency with focus on simplicity, reliability, and efficiency. Go has a strong ecosystem of tools and APIs on major cloud providers to build services. Fast and elegant CLIs (Command line interfaces) are also possible with go. With fast build times lean syntaxes and doc generators Go makes DevOps and SRE possible.
The Purpose:
Robert Griesemer, Ken Thompson and Rob Pike say that they felt the need of a new programming language for addressing the engineering challenges that they were facing in their daily work.
The core Data Solutions team at google wanted to scale their services and decided to migrate form a monolithic architecture to a microservices based architecture. Many of the indexing services were rewritten in Go. Concurrency and parallel algorithms which were widely used in this team made Golang a very obvious choice.
On similar lines the Chrome content optimisation team, which forms an important basis for the chrome's user experience runs on Go. The team started to find the C++ complex boilerplate required to stand up a C++ server to be too much.
The firebase hosting team had the entire backend written in NodeJS. For interoperability of firebase with other google services Go was starting to be incorporated in the backend. The need of concurrency would continue to be very critical and hence Go turned out to be a obvious choice for this team.
The SRE team at Google say that they found a sweet spot between performance and reliability which Go offered that none of Python or C++ could offer.
One common thing that all the teams just cannot stop praising about Go is its ease of use!
Does it stop here?
Hell no! With the ever growing need for scalable, reliable, concurrent and efficient systems, it looks like Go is there to stay here for a long time. Other large organisations have been quick in adapting Go to drive business success.
Allegro, American Express, armut, cloudflare, Dropbox and the list goes on. Allegro has been able to write a very fast cache service with millions of entries in Go. Cloudflare handles high-latency HTTP connections, entire DNS infrastructure, SSL and load testing.
Where to go from here ?
In the next blog we will be discussing about the 101s of the Golang. We will be starting with the hello world program and moving onto the other exciting stuff in Golang.
Feel free to connect with me here. Please leave below your views and thoughts on the article, I would love to hear them. Feel free to share feedback if any, I will ensure to incorporate them in my upcoming blogs.
Good Bye.
Subscribe to my newsletter
Read articles from Pranav Kalwad directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by