Thursday, October 15, 2020

Why learn Go?

With so many languages available, why one should learn Go? Check our 21 favorite reasons

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:

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

Any comment about this page? Please contact us on Twitter

Featured Article

Raw String Literals in Go

Learn what are Raw String Literals in Go and how to use them On a previous posts we discussed Runes, Variables and Strings in ...

Popular Posts