Google’s Go language or alternatively Golang is currently one of the fastest growing programming languages in the software industry. Its speed, simplicity, and reliability make it the perfect choice for all kinds of developers. Now, its popularity has further gained momentum. According to a report, Go is the fastest growing language on GitHub in Q2 of 2018. Go has grown almost 7% overall with a 1.5% change from the previous Quarter.
What makes Golang so popular?
A person was quoted on Reddit saying, “What I would have done in Python, Ruby, C, C# or C++, I’m now doing in Go.” Such is the impact of Go.
Let’s see what makes Golang so popular.
- Go is cross-platform, so you can target an operating system of your choice when compiling a piece of code.
- Go offers a native concurrency model that is unlike most mainstream programming languages. Go relies on a concurrency model called CSP ( Communicating Sequential Processes). Instead of locking variables to share memory, Golang allows you to communicate the value stored in your variable from one thread to another.
- Go has a fairly mature package of its own. Once you install Go, you can build production level software that can cover a wide range of use cases from Restful web APIs to encryption software, before needing to consider any third party packages.
- Go code typically compiles to a single native binary, which basically makes deploying an application written in Go as easy as copying the application file to the destination server.
- Go is also being rapidly being adopted as the go-to cloud native language and by leading projects like Docker and Ethereum. It’s concurrency feature and easy deployment make it a popular choice for cloud development.
Can Golang replace Python?
Reddit is abuzz with people sharing their thoughts about whether Golang would replace Python. A user commented that “Writing a utility script is quicker in Go than in Python or JS. Not quicker as in performance, but in terms of raw development speed.”
Another Reddit user pointed out three reasons not to use Python in a Reddit discussion, Why are people ditching python for go?:
- Dynamic compilation of Python can result in errors that exist in code, but they are in fact not detected.
- CPython really is very slow; very specifically, procedures that are invoked multiple times are not optimized to run more quickly in future runs (like pypy); they always run at the same slow speed.
- Python has a terrible distribution story; it’s really hard to ship all your Python dependencies onto a new system.
Go addresses those points pretty sharply. It has a good distribution story with static binaries. It has a repeatable build process, and it’s pretty fast.
In the same discussion, however, a user nicely sums it up saying, “There is nothing wrong with python except maybe that it is not statically typed and can be a bit slow, which also depends on the use case. Go is the new kid on the block, and while Go is nice, it doesn’t have nearly as many libraries as python does. When it comes to stable, mature third-party packages, it can’t beat python at the moment.”
If you’re still thinking about whether or not to begin coding with Go, here’s a quirky rendition of the popular song Let it Go from Disney’s Frozen to inspire you.
Write in Go! Write in Go!
Go Cloud is Google’s bid to establish Golang as the go-to language of cloud
Writing test functions in Golang [Tutorial]
How Concurrency and Parallelism works in Golang [Tutorial]