Do you consider using Go but don't know if it's worth the effort? Here are seven convincing reasons for choosing Go for your next projects.
Yes I know, you probably would not be reading this if you were not interested in Go already. However, just in case you have not heard anything about Go before, read on and find out what makes Go a great programming language.
There are many reasons for choosing Go for your next project, or even as the standard language for your team. Here are the top seven.
Go focuses on the "less is more" philosophy. While other languages drown under a pile of language features of which 90% are completely irrelevant for daily work, Go goes the opposite direction and provides a stable basis with selected, pragmatic features.
Go code looks clear and readable. There is a notable absence of unnecessary punctuation and cryptic operators. Also, the Go syntax and semantics avoid everything that is easy to write but hard to read.
And perhaps most important: the absence of magic. If you see "c := a + b" in the code, then you know this is two numbers being added, rather than some overloaded operation on some derived types whose definitions you have to look up elsewhere before you can fully understand the code in front of your eyes. Go is basically non-magic and simply does what the source code tells you.
The Go compiler is blazingly fast, due to a carefully crafted language syntax, automatic caching, and by enforcing the removal of unused package imports.
Go binaries are self-sufficient. All code gets statically linked into one single binary, which makes deploying ridiculously easy. Just copy the binary to the target platform and you're done. Of course, the Go toolchain also blends nicely into CI/CD pipelines or software orchestration systems.
Cross-compiling pure Go code is dead easy. Compile your code on a single machine for multiple target platforms at once.
Go code compiles to native binaries for almost any target platform. No hassle from incompatible versions of any required virtual machine on the target system. No performance loss through running interpreted byte code.
Concurrency is never easy. But the right language support can help a lot. With a single keyword, you can run a function independently from the rest of the code.
Channels provide a communication and synchronization mechanism that is easier and safer than shared memory and mutexes. (But if you want, you can have these as well.)
Testing and benchmarking is not an afterthought in Go. Write testing and benchmarking functions directly in Go, there is no need to learn a specific language for that purpose.
Go comes with an extensive standard library pre-installed. No more reinventing the wheel. And if the standard library does not provide the functionality you need, a large community of Go programmers have already created heaps of open source packages and apps for any purpose you can imagine, from Web applications to databases, from big data to machine learning.
Go boosts your productivity and makes coding fun again
Give Go a try! I am sure you will appreciate the clear, pragmatic way of developing.
Categories: The Language