Three engineers from Google, Rob Pike, Ken Thompson, and Robert Griesemer, developed Golang. The three grew weary of the complexity of C++ and the lack of a simple language that can offer efficient execution and compilation. In September 2007, the three started designing a new language, and after two years, in November 2009, they released the Go programming language to the public as an open-source project. Although the official name of the language is Go, the domain name "go.org" was already taken. Therefore, they settled on Golang (a combination of Go and short form for language, Lang). Version 1.0 of the language was released in March 2012.
The programming language was developed and designed to increase productivity in various working environments. On top of its well-known concepts like garbage collection and concurrency, design considerations for the Go include high-level dependency management. Others are robustness over the boundaries that link various components and the adaptability of software architecture as the system grows. Go is a concurrent, compiled, statically typed, and garbage-collected language. It imports the public repository and the other way around. Go was also intended to support multicore and network programming while also speeding upcoding.
Since version 1.1, various changes to the Go language have ensued. For instance, versions 1.4-1.4.3 introduced range-expression without assigning, and they disallowed the automatic double-dereferencing in the gc and gccgo. The open-source communities and the engineers at Google have been developing packages to support the language. Currently, Go has reached version 1.17 that primarily changes the Go internals.
Why is Go this popular?
Although Go is barely 12 years since its initial release, its popularity as an often-used coding language is rising. It is because of its unique benefits that are packaged and served in one convenient unit. The fact that Go is a general-purpose programming language (GPL) makes it so popular. The following are the features that make Go so popular.
The syntax of the Go language is relatively small and has remained so with no big changes. Additionally, Go has only one standard code format that is generated by its fmt tool. Go's lack of changes in syntax is beneficial to the developers. Because it stays almost the same, the code is not overcomplicated, and the programmers do not need to learn new paradigms.
Extensive programming tools
Being an open-source project, Go offers easy access to the tools required for the development. It has a wide range of IDEs, including; JetBrains GoLand, GoClipse, Zeus IDE, and LiteIDE. Therefore, you can execute Go programs on various platforms. Other tools include editors like VSCode and Plugins like VIM-go.
Concurrency means that a program can run multiple actions/tasks simultaneously. Go supports concurrency natively. It also allows multithreading, asynchrony, and multiprocessing. The Golang runtime scheduler manages all the created Goroutines that require a processor. This makes process communication efficient and fluent.
Go is fast
This is the most common opinion, and it is not just an opinion; various comparisons prove the fact. Compared to Python, Go is faster. Goroutines is the feature that makes Go fast because it executes the activity concurrently. Goroutines is a lightweight thread that is managed by Go runtime.
Go language has gone through various changes since the initial release. The changes are geared to improving the language to the benefit of the programmer. As we have seen, it has a lot of properties like concurrency garbage collection and runtime reflection that make it so popular. That is why the language is used by many companies like Google, Docker, Uber, and Kubernetes.