Why you should get Go-ing with Golang

Although there is little buzz on Go programming in blogs, real-world job adverts are increasing. It's used in all areas and by a wide range of organisations - Dropbox, Uber, Trivago, Monzo Bank, Capital One, American Express and PayPal to name several.

24-09-2021
Bcorp Logo


Why you should get Go-ing with Golang


The Go Programming language (also referred to as Golang) was designed by Robert Griesemer, Rob Pike and Ken Thompson in 2007 at Google. It was first presented to the world in November 2009 with version 1.0 released in March 2012. Since this time there have generally been two releases a year with the most recent release being 1.17 in August 2021.

This language aimed to incorporate many features of modern programming languages (such as Java and C#) within an environment that also maintained C’s ethos of being light weight and efficient. There was also a focus on providing suitable concurrency support.

In addition, the language designers wanted a focus on programmer productivity by making the language easy to read.

The Go Language

Go comes from the school of statically typed, compiled languages like C++. It has much syntactic similarity to C but incorporates type inference, automatic memory management and garbage collection as well as concepts such as interfaces (which are more akin to protocols in Python than interfaces in java).

Go’s concurrency features are based on the interestingly named Goroutines. A Goroutine is essentially a function or method that runs independently / asynchronously from other Goroutines in its own thread of execution. It is similar in concept to a Java thread executing a runnable function. Go also includes various concurrency controls such as Mutexes and Read Write Mutexes and atomic operators. These are all extended with CSP (Communicating Sequential Process) style channels. Channels provide for thread safe information exchange between Goroutines.

Where is Go used?

Go is used in all areas and by a wide range of organisations. For example, parts of the Dropbox back end have been migrated over to Go. Indeed, Dropbox have even open sourced several of their Go libraries for general use. Uber also uses Go to support their backend engineering services while within the travel industry trivago are also users of Go. In the banking sector both Monzo Bank and Capital One are go users as are American Express and PayPal in the payments area.

Why you should get Go-ing with Golang

Go is Opinionated

Go is not the best language in which to express your inner creativity! It is often very opinionated. The reason for this is to simplify how the code is written! For example, it mandates the position of {} after if statements and for loops. It also does not allow a local variable to be declared but not used as this generates a compile time error. It is also unhappy with packages being imported but not used!

Go Tooling

Go provides extensive tooling via the go command. This command can be used to compile and run a program, build an executable, to vet the contents of a program (for suspicious constructs), format a program, generate documentation, or install additional tools (written in Go).#

Go's Popularity

We can track Go’s popularity over the last 6 or 7 years using surveys such as the TIOBE index or the PYPL (PopularitY of Programming Language index). The TIOBE index showed Go positioned at 11th behind SQL and PHP in 2020 (although in 2021 it fell to 18th).

In contrast the PYPL index has Go at 13th in 2021 with a 1.52% share of all searches on Google for programming language tutorials. While this is not an indication of how many developers are using Go, it does show the general level of interest in the language. The PYPL index has shown a steady increase in interest in Go since appearing on the index in 2015. This is illustrated below and shows a steady growth in interest since 2015 from 0.2% to 1.52% in 2021:

Why you should get Go-ing with Golang


Of course, compared to Python and Java, Go’s share of is very small (Python had a 29.48% share and Java a 17.18% share on the PYPL index). However, it is growing and a steady pace.

An interesting point to note is that the above PYPL index relates to world-wide interest in Go. This can hide some differences interesting differences around the world. For example, if we look at the PYPL index for the US and the UK, then Go is ranked 10th and 9th respectively (with similar levels of shares of all searches at just over 2%). However, in Germany Go is down in 14th place in the index.

Notably in the PYPL index, interest is Go is on the rise in all countries.

Another way of looking at the level of interest in a language is by looking at the job market for that language’s developers. In 2021 Berkeley published a list of the most in demand programming languages and Go come in 11 just behind Perl, Rust and C#. In turn IEEE Spectrums Top Programming Languages 2021 survey placed Go as 8th (ahead of HTML and Swift and only a little behind R and C#). Finally, Geeks for Geeks ranked Go at number 9 in its list of the Top 10 Programming Languages that will rule in 2021 just behind PHP.

Summary

Go may not have had the apparent instant success of some new languages or the incredible hype / interest surrounding other languages. However, interest in Go has been growing steadily, albeit from a very low start, over the last 5 years or so. Of course, it still has some way to go to be as popular or in demand as one of the big 3 (Python, Java and C#).

Interestingly although there is little direct buzz around Go in blogs and discussion groups, in the real-world jobs adverts for Go are increasing, training request for Go are growing and tutorials and books on Go are starting to appear rapidly.

So should you be monitoring Go – the jury is still out on that - but the future looks bright, so perhaps you better get Going!


Would you like to know more?

If you found this article interesting and you'd be interested in our Go Programming course.

Share this post on:

We would love to hear from you

Get in touch

or call us on 020 3137 3920

Get in touch