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.
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.
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.
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.
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.
Subscribe to Why #workwithmad
Get the latest posts delivered right to your inbox