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
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.
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:
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.
We use cookies on our website to provide you with the best user experience. If you're happy with this please continue to use the site as normal. For more information please see our Privacy Policy.