Go is a computer language developed by Google’s engineers Robert Griesemer, Ken Thompson and Rob Pike in the year 2007, but announced to the public in November 2009. It traditionally follows the principle of C and Algol, giving the facility of garbage collection, memory safety features, limited structural typing and CSP-style concurrent programming features. It is a Google product and is now adapted by other firms as well. The motto of Go is to speed up the existing processes, whether it is related to programming, error handling, debugging, testing or actually launching the software among the end users and maintaining it. Google engineers wanted to invent a new language that maintains the positive characteristics of the previous computer languages and overcomes their drawbacks.
It is divided into two major implementations. Google’s Go compiler gc which is an open source software targeting Linux, Windows, OS X, various Unix versions, etc. Its another implementation gccgo (GCC frontend) was recently launched in the year 2015 for mobile devices covering smartphones.
Apparently Go language seems to be similar to C but has many new features in addition. Following are its main features:
1. Easy to learn – For a team of employees who need to shift from the old language to the new one, Go is actually easy for them since it is just a slight change in the syntax that appears similar to already learned languages. Though, doing everything right needs a few months of practice which isn’t learned overnight.
2. Concurrency – Most web applications have the requirement of getting the data from multiple sources. This reduces the latency through dividing the whole work into small segments and then executing each small section separately. It hides the latency as well. The programmer is also able to finish the incoming requests faster and so the network and hardware resources get free earlier.
3. Excellent in performance – Golang is capable to handle the load 100 times as compared to the current web servers and obviously can reduce the cost to 100 times. This enables efficient performance without actually slowing down of the server(s).
Those who have tried Golang have varying opinions. There are those who simply love it, and there are those as well who don’t. This all depends on the type of programming one is used to. Go too has drawbacks since no language is perfect.The common drawbacks noted are as follows:
1. The absence of manual memory management in Go actually leads to issues like pauses and overhead of Garbage Collection that leads to limitation of system programming.
2. Absence of certain functionalities such as operator overloading.
3. Issues like metaprogramming and code duplication cannot be statically checked and generic algorithms cannot be offered by the standard library.
Google usually attempts to build its own products rather than using any third party products and services. Go is a modern computer language which is designed to cope up with the latest hardware architectures and concurrency. Since it is a language which hasn’t yet completed a decade, let’s hope for its more improvement in the coming years.