Go-A compiler level lingo for modern commercial computing

Here we go!

Newer versions of languages and derived frameworks are continuously being made to break pre-existing benchmarks. However, in the middle of all this, no one really contemplated on building a compiler language. But here we have Google working on GO Lang- a complete compiler level language that challenges the existing paradigm of system architecture. GO is a systems programming language that clearly beats C, C++ and Java on multiple fronts.

A small team of developers at Openxcell have been playing with Go Lang for a while now and found it to be extremely useful for use-case scenarios that are quite common these days. We want to work on Go in near future and employ it for projects that call for large stack management to clamp overall latency down. Current use case scenarios will make it clear that Golang is potential and can cater to the needs of modern-day computing at the most basic level.

 

Earlier architecture on the right hand side. Look how Go sheds a number of steps to increase speed

The general architecture of your system looks a lot different with Go. Earlier, Java, Python or C++ would occupy the server. You can see a lot of stages that the data goes through before it even served to the Content Distribution Network (CDN) or Load Balancer (LB). This wrestling with the data is reduced in Go. When you read the use cases, you will understand it in depth.

Most of Go is being used by Google at this moment. However, there are other firms too that are jumping on and creating value for their business with Golang. Let’s look at some of these-

Used within the Youtube Database

GoLang has been used for building the MYSQL server infrastructure for YouTube. There is not much data available for this one as Google does not openly talk about the applications of Golang. However, it has popped up many times from various sources that Youtube stacks do employ go codes.

Golang code smaple within Youtube API

Used in dl.google.com

A number of years ago it was being observed that downloads from google servers were stalling or slowing down without any apparent reason. However, at the bottom of that, it was all in the stacks. Developers knew that the C++ syntax is to be blamed. So earlier, the stacks that ran C++ were later changed to Go. It solved the problem.

download

The engineering team was expecting an increase in CPU or memory usage as they shifted dl.google.com to Go. However, nothing increased over time. In fact, memory usage dropped after the transition from C++ to Go.

Apart from these, Go is used in Chrome, Android SDK, Google Earth, and many other readily used applications that demand millions of requests and benefit from concurrency.

Receiving and Handling Twitter Events

The new system architecture of Twitter. Snipped from Twitter.com

Twitter has developed a unique event reception protocol for its system. The fundamental thought behind it was to cater notifications across the network in real-time (almost). They employed Amazon ELB and Golang to get this done.

According to this protocol, the device attempts to send hundreds to thousands of compressed payloads. These payloads are nothing but events coming from twitter handles. In order to take this data to the server, there are a number of triggers that attempts to transfer data from the device to the server. This entire service is written in Golang and is fronted by Amazon ELB.

You can clearly see that the shift to mobile and subsequent increase in demand for real-time information made Twitter shift to Go. This goes for any mobile startup that is looking to upscale while maintaining their stacks efficiently at the same time.

Dropbox is using Go

Dropbox has migrated their performance critical backends from python to Go in 2013. Dropbox wanted better concurrency support for their system that Go apparently provided. Dropbox engineers wrote almost 200,000 lines of codes to undertake this implementation. The results were amazing as it increased execution speeds significantly.

Sendgrid is also making use of Go concurrency

Seems like concurrency provided by Golang is its primary advantage. Here we have a cloud-based email service provider that relies on Golang to serve millions of emails a day. Concurrent programming is working wonders for Sendgrid and the developers are also preaching for its adoption.

Apple is on it too

While Apple likes to keep everything secret there are bits and pieces of information that get into the public eye once in a while. For example- look at this job post

http://www.golangprojects.com/golang-go-job-in-Senior-CDN-DevOps-Software-Engineer-Santa-Clara-Valley-Apple.html .

Posted in mid-2014, the primary role of the Job requires experience with Perl and Python and an interest in Golang. This indicates that Apple surely has its eyes on concurrent programming and pumping the performance of its Content Delivery Network or CDN. 

Soundcloud Services and Repositories

Announcement from Soundcloud on hitting 10m users on Jan 2012. It has seen steep rise in that number which stands at 175m now. No wonders they employed Go

Soundcloud has weighed Golang and its numerous advantages. It seems like SoundCloud is quite happy with the syntax of the language and puts it over other languages that apparently create more complications. Altogether, SoundCloud maintains about half a dozen services and over a dozen repositories written entirely in Go. The company is also increasing the number of backend projects built on Go.

Apart from the above, there are a lot of other companies that are working on Golang right now. The goals have a similar undertone of improving performance and using concurrency to achieve it.

The Future:

Most of the usage listed above, are connected directly or indirectly to data management on servers using concurrency support. However, when other technologies are put into the mix, the results can be fascinating. Just think, what happens when concurrency support of Golang is mixed with technologies like HTML 5, WebSockets and other platforms. Here is what one can expect-

Jam with friends

http://www.jamwithchrome.com/technology .

Just imagine if we can really create an interface where we bring people in from any part of the world and let them have a Jam session over their devices? Won’t that be great?

I know, many of you might opine that it is still far fetched but a collaboration tool between musicians is pretty much possible right? Yeah, I know now you are coming up with some more ideas.

This is when you begin to think that Go is a potential language which can sail into the future and may even dominate the next decade. Being a compiler level language makes it even more potent.

Do you have a startup idea that calls for intensive and concurrent data requests? Real-time has become almost normative in the current age of computing and tech pioneers are identifying the best tools and putting them to use. While the industry keeps seeing newer frameworks, a performance oriented compiler language that caters to modern day computing needs is totally a new thing. Golang can go far. It has got the potential.

Arup Dey

Arup Dey

I am passionate about Games, Content Marketing, NLE apps and Videos. In my free time I Read, Eat and Code. I see life around me as interconnected subsets of small events. Helps me learn a lot!