#technology

Why We Choose Go.

Remember when Perl was all the rage, destined to be the next server-side staple? How about VisualBasic.NET and Delphi Object Pascal? Nope, neither do we. PHP was all the rage in the last decade, then developers fell in love with NodeJS.

JavaScript-based server languages were trending again: AJAX, NodeJS, SilkJS. Now, the ever friendly NodeJS is waning in the annual beauty contest.

Yes, these languages still exist for stubborn developers who still have the Macarena playing in their cassette players. However, they are still, inarguably, useful. They are functional, they deliver data when required, some of them are even still fast.

Still, we focus on performance and potential for future use. We focus on the things that don’t change. We want the language we use for our servers to be fast, easy to implement and reliable.

Go was the obvious answer. Here are our justifications:

Go big. Go is scalable.

There are various reasons why Go is great for software developers looking to scale up their product. But one word: Goroutines.

Instead of running on single threads, such as NodeJS or AJAX, Go is designed for lean concurrency to handle the extra load. You can weave as many “threads” (or in this case goroutines) as much as possible at any given time without compromising performance.

This also reduces the likelihood of crashes due to memory overload, not to mention that goroutines are only called when required, thus saving plenty of memory space.

gograph

Take the fast lane. Go is Fast.

The startup time for Go is much faster than most of its contemporaries, such as NodeJS and Python.

Go is also converted directly to binary, unlike most server side languages, which converts from byte into a virtual machine, then converting to binary. This takes it from human readable code straight to the processor. Fast.

In addition, Go is still a new language. Thus, there are still plenty of speed improvements coming right around the bend. The last update of Go improved the speed by 30%, which shows that the language will get better as it hits its prime.

Go is Convenient.

It is much easier to maintain code in Go. The language lives in that rosy spot between machine readable and human readable code. An absolute blessing.

gograph2

Hence, this means that it is much easier to write safe code in Go. If you are human and incidentally wrote a bug, it will be much easier to debug.

Furthermore, writing in Go ensures that devs specify the type of each variable. Although this may seem like an extra step, it ensures that there will be less logic bugs later on which may be more expensive and time-consuming to track down.

Go is Reliable.

As usage scales and load increases, naturally, failure rates increase. Toptal tested four of the server-side languages including PHP, Java, NodeJS and Go. As concurrency increases, Go outperforms all other languages tested.

gograph3

Go is Growing.

True, as Go is young, the community is small compared to other server languages that have been around since the early 2000s. However, Go is backed by Google, and stacks of developers (like ours) are fast falling in love with what the language can do.

The community will grow over time and is set to overtake its counterparts. Large corporations such as Dropbox, Cloudfare, BBC have been using Go for years. We’re excited to see where it’s going to go.

We bloody love the name.

Okay, this one is a bonus. Also because we love puns. We generally place our web apps at go.appname.com

Coincidence? Go figure it out.

Most of all, Go fits into our vision.

It is no secret that you should choose a language which fits with your product and business vision.

Go fits our purpose. We expect to grow fast, thus the need for a lingo which can scale to the speed. We know the quality of our product, it will be adopted quickly, and we need the scalability to support it.

We chose Go also because it shares a similar story to our brand.

Bonus points go to you if you can spot how many puns we put into this article.

Kit Teguh

Kit Teguh

Digital Strategy @ Mäd. Spending more than half his life in Asia, Kit brings the local knowledge to the team. Believing that there is always much to learn, he instills a learning attitude in Mäd.

Read More
Why We Choose Go.
Share this

Subscribe to Why #workwithmad