Should you learn Go in 2023?
Tags: go, programming, community
Published: 2022-12-26 04:45:42

In this article, I will be answering the question: to Go, or not to Go, with Go, in 2023? (sorry for the pun). If you rather want to watch the YouTube video, you can find it [here](https://www.youtube.com/watch?v=PaJQjkOVf34&ab_channel=ThomasLanghorst). Now without further ado, let’s find out!

## A little History
For those of you who don’t know what Go or Golang is. Here a little history. Back in 2007, Go was first designed by three google employees. As Rob Pike, one of the three authors of Go, wrote in an [article](https://go.dev/talks/2012/splash.article):
> “The goals of the Go project were to eliminate the slowness and clumsiness of software development at Google, and thereby to make the process more productive and scalable.”

Working with a huge backend codebase, mostly written in C++, Java and Python, the three engineers wanted to build a new language to help tackle the issues they had while working with the code at google, while also maintaining its effectiveness. Rob Pike said: _“In short, development at Google is big, can be slow, and is often clumsy. But it **is** effective.”_

So they wanted to take the speed of C++, the strict syntax of C and paired it with pythons simplicity and useful features of Java. And what came out was this new language called Go. The combination of these makes Go one of the most powerful and effective languages for large-scale codebases, while also being simple and easy to maintain. Later in 2009, Go was open-sourced and had its first major version 1.0 in march 2012.

## Pros of Go
But what exactly is Go, and what are its main benefits? Go is an open-source, compiled, strongly and statically typed programming language. It was built to be readable, simple and efficient, while also being high-performing.

I will not go into all the pros and cons of Go in this article (you still have things to do today, right?). Instead, I will keep it short and focus on the three main benefits and drawbacks. If you want to see a full list, you can go ahead and watch my [video on YouTube](https://www.youtube.com/watch?v=PaJQjkOVf34&ab_channel=ThomasLanghorst).

_**Concurrency**_
Go has an incredible concurrency support, which makes writing concurrent code as easy as it gets. The way how easy Go handles concurrency is probably one of the main reasons why people pick this language over others.

_**Toolchain**_
Go has a fantastic toolchain. Running, building, formatting, profiling, installing, testing, … all these, any many more commands are part of the integral Go toolchain. So there is no need for external tools.

_**Simplicity**_
One of the main reasons why people use Go is: Go is an extremely simple programming language. Without much syntactic sugar, Go forces explicit code. Which makes this language easy to read, easy to maintain and easy to learn.

## Cons of Go
But it’s not all rainbows and unicorns in Go land. Go also has its drawbacks. For example:

_**Verbosity**_
Despite its simplicity, Go sometimes can be too verbose and too explicit. Functions ranging over several 100 lines of code are no exception. And don’t get me started on the gazillion `if err != nil` checks. Writing all this code can be time consuming and a drawback for teams rushing against strict deadlines.

_**No strict coding guidelines**_
Although there are some best practices and generally accepted rules, Go does not strictly tell you how it wants things to be coded. This lack of clear and strict structure leaves room for undisciplined coding and inconsistencies. Which can become an issue in larger projects.

_**Still feels young**_
Even though Go is more than 10 years old, it still is a seemingly young programming language. Sometimes, even big companies or projects are missing Go SDKs or clients for their products. So if you want to use them, you need to either rely on open-source projects or write them yourself.

These are the pros and cons of the Go programming language. But what is Go primarily used for?

## Primary use-cases of Go
According to the latest [Go developer survey](https://go.dev/blog/survey2021-results) conducted in 2021, Go is used in a variety of areas. Such as Technology, FinancialServices as well as Media/Gaming, to name the top three. Of those people who write Go code, almost 50% write backend API or RPC services. Leaving the rest far behind with data processing, web services and CLI tools with roughly 10% each. So if you work in one of these areas, knowing Go can be a huge benefit.

## Job opportunities for Go developers
Now let’s have a look a the jobs for Go developers. The [Go homepage](https://go.dev/) gives us a list of many big tech companies, who are using Go. Among them google (obviously), but also PayPal, Meta, Netflix, Uber, and many many more. Go must be doing something right, if big tech companies are relying so heavily on it.

[According to Hired](https://hired.com/2022-state-of-software-engineers/), Go is the most in demand skill that companies are searching for in software engineers. The second year in a row by the way. So, the need for Go developers is definitely there. But how about the salaries?

## Salaries for Go developers
If you have a look at the annual [stack overflow survey from 2022](https://survey.stackoverflow.co/2022/), you can see that Go is among the top 10 of top paying programming languages. With a median of almost $90k USD, being a Go developer gets paid better compared to more popular languages like python ($71k), C++ ($68k) or Javascript ($66k).

If you have a look at the same tables from the surveys of years [2021](https://insights.stackoverflow.com/survey/2021#technology-top-paying-technologies), and [2020](https://insights.stackoverflow.com/survey/2020#technology-what-languages-are-associated-with-the-highest-salaries-worldwide-global), you can see that salaries for Go developers have increased over the last few years. From $74k USD in 2020, to $76k in 2021, and now being at almost $90k USD in 2022, the average salary has increased tremendously. Which is also very positive for the Go language.

## Conclusion
So, to answer the question: should you learn Go in 2023? If you are looking for a new programming language to pick up, or a new language to increase your chances on the job market, in my opinion, Go is a fantastic choice!