Go is an open source project, developed by a team at Google and many contributors from the open source community. Go is distributed under a BSD-style license. It adheres to strict rules and is recommended for this reason. With my expertise in C Language (purely C and not C/C++) and Linux too, I see this as its biggest advantage, and I just love this characteristic of Golang.
Moreover, the strict typing (syntax) is an important attribute of a language. It that helps in capturing the run-time errors very early and that too, during 1st pass of compilation.
It’s perfect OS-agnostic natured and code written in Linux, with appropriate language constructs to make it workable as-is and can work on any other OS, as-is.
The libraries are statically bound with the binary code. It makes performance faster. It may be argued that server applications may crash or fail due to failing-dependencies. This is equally true of any other programming language for that matter. Even with implementation of RADIS and Memcache like components, one can clearly delineate the server application from the underlying caching and data dependencies.
One of the best things Go offers is the ‘concurrency’. Channels and Go-routines make the language super performers when one considers heavy load to heavy processing engineering requirements. I have done completed benchmarking by running 600,000 (6 lakh) concurrent go-routines.
Web frameworks, caching engines, web-socket frameworks, built-in support for creating and launching web-server, strong http and other TCP/IP suit, library APIs, concurrency, built-in support for data structures are the strongest characteristic of the language that is makes the so popular in the user-community. The popularity of the language is reflected by the fact that it has risen to the 20th place from the bottom of the stack.
The cons that I see with the language are:
The following links would guide you in your decision of using Golang: (Here are some of the links that are helpful resource for Golang.