Learning a new programming language can be tricky, fun and exhausting. With so many options available in the market today, why should one learn Go? Let's review 21 reasons to learn this fantastic programming language.
Go is Free
You don't need to invest anything to start writing code in Go. The compiler and all the tooling can be installed for free and writing the language does not require any special/heavyweight editor like other programming languages (for example, C# or Java). The standard library is fantastic and the community also offers most of what you'll in free/open-source repositories.
Go is Fast
Go has a reputation of being fast and it is! Go is fast to write, to build, to deploy and to run. Plus, because it's very lightweight, Go usually yields better performance (and less memory utilization) than other enterprise languages.
Go is Simple
Go's simplicity is one of its strengths. The language counts with a minimalistic design and a clear language specification. Go has only 25 keywords (Python 3.5: 33, Ruby 2.2: 41, ANSI C: 32) meaning it's really simple to get started!
Source: GeekForGeeks.org |
Go is Intuitive
Once you get the foundations, you'll realize how intuitive the language is. Given its C-based syntax (shared by JavaScript, Java and C#) it won't take you too long to understand its foundations and write your first apps.
Go is Elegant
Not only Go is intuitive as it's elegant. With its powerful standard library, tooling and its built-in concurrency primitives, Go will surprise you.
Go is Fun
Given its simplicity and its roots to modern programming languages, Go is fun! In fact, Go is one of the most loved technologies by developers in 2020:
Go is modern
As explained on the Go documentation page,
Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language, with the efficiency and safety of a statically typed, compiled language.
The Go architects come from a school of simplicity and reusability from the old Unix and Plan 9 days. They reused those same premises to create a simple and effective language to leverage the cloud and modern computing architectures. The language makes complex features such as channels and goroutines first-class citizens making you leverage your computational resources as efficiently as possible.
Go is not complicated to get started
Due to its simplicity, learning Go is actually very simple! Grab your favorite text editor (by the way, ours is Vim), install the framework and get ready to write your hello world program.
Fantastic Standard Library
Go's standard library is fantastic! With it you will find most of what you need to develop your applications including support for networking (http, mail), archiving (zip, tar, gzip), encoding (json, csv), cryptography (aes, des, md5), a built-in templating language, database drivers, logging system and integrated testing tools. Need more? No worries, the community provides you with lots of solid packages and frameworks to use in your next project.
Fantastic Tooling
Go also comes with powerful integrated tooling such as:
- golint: check for style violations
- go vet: check for programming errors
- go test: test the code
- go tool cover: test coverage
- go doc: to generate documentation
Statically Linked
One of the strengths of go is that its compiler produces statically linked binaries meaning that they don't require any dependencies to run! That's perfect for containers for example as you won't need those 5GB images to run Java apps on containers.
Awesome Community
Go's ecosystem is brilliant. You'll find thousands of videos on YouTube, hundreds of open-source projects on GitHub, dozens of sites teaching it and very friendly communities on Slack, Reddit and Twitter.
Lots of jobs
The huge growth in adoption by the enterprise means there are lots of jobs available - and not enough people to fill them! By mastering Go, rest assured you'll have a good job for decades to come.
High salaries
Not enough jobs = high salaries. Developers working with Go make good money these days. But that's not our personal opinion, check the medium salary in 2020 from this research from StackOverflow:
The Language of the Cloud
The Go architects developed Go to be the best language for the cloud. In fact, it's not one of the best languages to run your cloud services but also multiple backend technologies extensively used in cloud infrastructure like Docker, Podman, Kubernetes, etcd, Prometheus, Grafana use it.
Multiplatform
Go was created to be usable across multiple platforms meaning that you can develop your Go applications in any system you like (ex, Linux).
Cross Compilation
Go's compiler also allows you to build executables for different operating systems (aka, cross compilation) making it an ideal fit for multiplatform tools and cloud services.
Backed by Google
Go's backed by Google. But fear not! In fact this is a good thing since Google guarantees that the investments on the language (such as paying for the people who work on it, for hosting, sponsorships, etc) is kept. Go's development happens entirely open-source with all the discussion open to the public.
No restrictions
Being backed by Google does not impose any restriction on Go. On the contrary, Go's license does not come with any hidden legalese which could be a compromise for you or your organization. Plus, its open-source code guarantees that even if the language is abandoned by Google, the community can continue its development.
Used in the Enterprise
Want to work for a big tech company? Maybe you should consider learning Go. Go is also used in the biggest companies around the world on many, many mission-critical environments including by Google themselves, Microsoft, Apple, Cloudflare, BBC, GitHub, Netflix, American Express, Twitter, Facebook, Walmart, Spotify and many, many other big companies
Open channel to open-source
Given its wide adoption in open-source software, being backed by Google and be the language of the Cloud, chances are that once you master the language, you'll have an excellent access to contributing to open-source software.Conclusion
On this post, we reviewed 21 reasons to learn Go. Go is a very powerful language built for the cloud leveraging modern computing needs without sacrificing simplicity and performance.