Go Language & 10 Reasons Why You Will Like It

Go Language & 10 Reasons Why You Will Like It

Hi AdIners!
On this occasion, I will introduce to you all the programming languages used by large companies as their server programming languages, namely the Go language, which is also commonly called Golang. Go is one of the Open Source programming languages introduced by Robert Griesemer, Rob Pike, and Ken Thompson. They are former Google employees, and this language introduced to the public in 2007. So, to make this article short, I will immediately convey the benefits and advantages of Go that I have summarized, this article is also based on my experience so far using it.

1. Go User
Go is used by well-known companies and has a large capital, which means that Go considered proven as a programming language, so this language is trusted by these important companies as the basis to build their systems.

Here are some of the companies:
a. Google – The largest search engine in the world

b. Uber – The Biggest Ride-Hailing in the World
c. Docker – Containerization Technology
d. Tokopedia – The biggest marketplace in Indonesia
e. GO-JEK – BIGGEST Ride-Hailing
There are many other large companies out there using Go. If you are interested, please check the following link:
a. https://stackshare.io/go
b. https://github.com/golang/go/wiki/GoUsers

, Go Language & 10 Reasons Why You Will Like It, Advance Innovations

2. Performance
Go is a compiled language. So, the performance is certainly far above other programming languages, for example like PHP or Python. Go is made by a former Google engineer who is already experienced in server programming.

Go is very efficient for CPU usage, and can utilize multi-cores efficiently, so there have been many success stories out there that say that by moving to Go, they can save a lot of servers. Please check here if you want to find out more.


3. Cross Compiled
Only once is enough to write the AdIners program code, and the program will be able to run almost all operating systems, starting from Windows, Mac OS, Linux, and so on. Check the complete list of supported operating systems here.

4. Strongly and Static typed language
This mechanism allows the errors that we make out before the runtime to run so that we do not waste a lot of time to build and test programs that will later be an error.


5. Statically Linked
This feature makes our program not dependent on any libraries or dependencies on the device we will install, nor does it need to install Go on that device, this feature makes it superior to most other programming languages.


6. Don’t need a Web Framework to handle HTTP requests.
Good news for you Web developers, with just a few syntax lines you can create a Web without having to use additional libraries on Go.
Although the programming language Go is quite general (multi-purpose language), but Go is also made with a Modern Web mindset, so the tools to create a Web / API have been provided and are very powerful, without having to use additional libraries/frameworks.


7. IDE Support and Debugging
Golang is an open-source programming language, so the IDE support is very broad. There are a lot of multi-platform IDEs that support Go, such as Visual Studio Code, Sublime, GoLand, and so on. It will greatly benefit developers because they don’t have to be tied to our OS use for example, only support on Windows or Mac OS.

8. Easy and Powerful Go Routines for Concurrency Programming
Before we discuss further, concurrency is different from Parallel programming (multithreading, etc.), concurrency in Go is very efficient, even arguably superior.
The thing that differentiates multithreading or ordinary parallel programming, Concurrency in Go uses a feature called Go Routines, and Go Routines can communicate with each other/synchronize using channel features. It will be very beneficial in managing system flow within the program, and this channel is known to be very efficient and low latency. Besides, Go also has a Go Race detector to detect race conditions. The developers need this feature. Maybe, this will be felt by those who made multithreading applications. From a memory standpoint, threads on the OS have a fixed stack size of 1-2MB, while Go Routines only requires 2KB. This makes Go program very light, and efficient, it’s no wonder Go is often used in backend programs that require large traffic such as e-commerce, raid hailing, server APIs, and so on.

9. Completely Garbage Collected, No downtime
Go has been fully-garbage collected, and the GC in Go is quite superior compared to other programming languages and claimed to be close to zero downtime/pause so that the impact resources used by Go will be more efficient.

10. Learning Curve that is Easy to learn
In my experience, Go is very easy to learn, even Go is easier to learn than Java, .Net, Javascript, Python, or even PHP. The Environment Go is easy to set up, so just overnight you learn Go, you will be confident to make a simple HTTP Server or command-line app.

For those who are starting to like Golang, here I give my favorite web reference on Go Example.
Hopefully, this article is useful for AdIners.

Written by Kharis H