Golang is a modern computing language known for its scalability, concurrency, and superior error check. It is the brainchild of Google which was facing challenges with programming efficiency of many of the common programming languages. Though most of these languages had benefits, there was no single language with all features to produce high computational applications. Google engineers were using a mix of languages such as C and Java for static typing and efficiency, Python for Productivity and Java for Multiprocessing. Such a concoction was killing productivity efficiency of engineers in an age of cloud computing, multicore processors, computer networks and large codebases.
To counter this challenge Rob Pike, Ken Thompson, and Robert Greisemer of Google created Golang which is meant to be a superior computational language with a mix of the benefits of C++, Java, and Python. Golang is a highly concurrent and scalable language with simple syntax. This means that applications developed using Golang are highly scalable and can handle any number of users putting in simultaneous/ concurrent requests. Further, its simple syntax implies lesser lines of code which means less time spent writing and maintaining the code. This results in quick go-to-market of applications and lower costs for maintaining and rewriting complex code. However, Golang is still a new language and lacks the library support that most of the legacy programming languages possess. Yet Google and many other organizations, as well as open source projects, are using Golang. Since its inception in 2007, public announcement in 2009 and version 1.0 release in 2012 Golang has seen two major implementations. With great cross-platform support and superior error handling Golang is being used by several companies. Here, are some big names which use Golang.
Uber has written over a hundred services in Golang. Geobase one of the most recent Uber services written in Golang. It matches riders to drivers, sharding the matching across machines. In fact, Golang powers a majority of high QPS services at Uber. Uber datastore schemaless sharding layer was in Python. However as their business grew, so did their resource utilization and latencies. To keep Schemaless performant, they needed a solution that would execute well at scale. Thus they rewrote Schemaless’ fleet of Python worker nodes in Go.
Google uses Go for many internal projects. The service that runs dl.google.com--the source for Chrome, Earth, Android SDK, and other large Google downloads--has been rewritten in Go. Several of Google’s big user-facing services including youtube.com as well as golang.org also use it. There are many small projects in Google which are developed using Google App Engine's native support for Go.
It is a video-sharing website hosted in France. The website resembles YouTube; it streams videos, including original content created by Dailymotion studios. Dailymotion uses Golang for automation of APIs and End to End test cases. They conduct hundreds of automation tests every month using Golang. They chose Golang for huge loads of automation testing as it is fast and powerful. They have developed most of their backend projects in Golang because of its performance, static type checking, and simplicity.
It is a live streaming video platform that focuses on video game live streaming. It is a subsidiary of Amazon. It also streams music broadcasts, creative content, eSports competitions and more. The Transcode system of Twitch takes the RTMP stream from the broadcaster and transcodes it into multiple HLS streams. This is implemented via a combination of Golang and C++. The distribution function that is meant to provide highest quality video streaming experience is also written in Golang.
Answer the analytics engine that powers the Fabric Platform is built in Golang. Fabric provides users with a real-time understanding of their app's performance and health. Answer receives about five billion analytics sessions per day. Millions of devices send millions of events every second to Answers endpoint. Since its communication protocol handles compressed payloads every second they needed a service that is highly scalable. Thus for easy linear scaling and simplicity of code this entire service is written in Golang.
It is a cloud-based email service to reliably deliver high volume emails on behalf of some of the biggest companies in the world which includes uber, Airbnb, Spotify and more. SendGrid’s customizable, reliable, and scalable APIs have been developed using Golang. Such email applications can deliver the most relevant content to the right user at the right time.
The online content publishing platform Medium is also using Golang extensively. Their Neo4j database is managed by a service written in Go which they refer to as GoSocial. Medium further uses Golang for image processing as well as certain other backend services.