Go (often also Golang) is a compiled, multithreaded programming language developed internally by Google. The Go language was designed to create highly efficient programs that run on modern distributed systems and multi-core processors.
Go is a strongly statically typed language. Has a fairly concise and simple syntax based on C, but significantly modified, with a lot of syntactic sugar.
The main advantages of the Go language:
Simple and straightforward syntax.
This makes writing code a pleasure.
Static typing. It helps to avoid mistakes made by inattention, makes it easier to read and understand the code, and makes the code unambiguous.
Speed and compilation.
Go is tens of times faster than scripting languages with less memory consumption. Moreover, compilation is almost instantaneous. The entire project is compiled into one binary file, no dependencies. As the saying goes, “just add water.” And you don’t have to worry about memory, there is a garbage collector.
Moving away from OOP.
There are no classes in the language, but there are data structures with methods. Inheritance is replaced by an inline mechanism. There are interfaces that do not need to be explicitly implemented, but just implement the interface methods.
Parallelism.
Parallel computing in the language is done simply, gracefully and without headaches. Goroutines (something like streams) are lightweight, consume little memory.
Rich standard library. The language has everything you need for web development and more. The number of third party libraries is constantly growing. In addition, it is possible to use the C and C ++ libraries.
Ability to write in a functional style.
The language has closures and anonymous functions. Functions are first-order objects, they can be passed as arguments and used as data types.
Reputable Founding Fathers and a strong community. Rob Pike, Ken Thompson, Robert Grismer were at the fore. Now the language has over 300 contributors. The language has a strong community and is constantly evolving.