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!
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:
The community is also discussing fuzzing and, among other things you can use the cli to do pretty much everything including viewing 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.
See Also