Five reasons to get familiar with GoLang

    By Jonny Muir, Content Executive at BJSS

    Jonny Muir

    The Go Programming Language, or Go for short, has become one of the most sought after programming languages among developers worldwide as of 2021.

    At BJSS, we can certainly see why this is the case. There are many reasons for Go’s flourishing popularity and we recently held a webinar to examine them in more depth. Hosted by Dan Webb, Head of the BJSS Academy, the webinar featured BJSS Software Engineers Andrew Beattie and Joseph Cheverton-Wynne discussing the benefits of GoLang from their work with a leading betting and gaming client.

    In this article, we summarise the five key reasons why Andrew and Joseph think Go should become part of every software engineer’s tech stack.

    Top 10 Skills For Technologists In 2022

    Five Reasons To Get Familiar with GoLang

    1. Speed

    Joseph pointed out that Go is relatively quick to learn, thanks in part to its simplicity. The freely accessible Go Playground online editor can be used to compile and run programs so that learners can test out ideas in a sandbox environment.image (7)

    Joseph also pointed out that GoLang compiles quickly, which means working binaries are created in super-quick time. This, in turn, means a fast turnaround for projects, and that’s good for everyone involved, from software engineers to customers.


    2. Lightweight

    In the webinar, Andrew said that it was common to need just a few hours to get a handle on the syntax and the standard library is generally free of bloat.

    Furthermore, Go currently has just 25 reserved keywords compared to C#’s 102 and Java’s 50, which demonstrates just how much simplicity is a main feature of the language.

    In terms of setup, download and installation, the setup instructions for GoLang are simple (only about four commands) and upgrading is incredibly straightforward.


    3. Easy concurrency

    Easy concurrency is probably the key feature of GoLang, with Joseph saying it’s “baked into” the language. You can call any function simply by prefacing it with ‘Go’, which works for synchronous and asynchronous functions.

    image (8)

    GoLang uses channels to manage different concurrently running routines, and results from the channel operations guide the next actions taken. Concurrency is a real time-saver, and it is very well implemented in GoLang.


    4. Tooling

    Andrew said GoLang is a “batteries included” language.

    It has its own testing framework built in, executed by the command ‘go test’. These include the capability for sub testing and parallel testing.

    GoLang also includes its own benchmarking, so you can run tests on code and benchmark performance under complex testing conditions.

    Just like many other languages, GoLang has a doc feature so that you can add comments into code, including the ability to format code layout, which is very handy when working across several different projects.


    5. Profiling

    The ‘pprof’ tool is used for performance profiling, and this is one of the areas in which GoLang really comes into its own. It’s very easy to spin up on your Go services and will show you exactly where all the Go routines in the programme are currently waiting for a value to be passed over a channel. This is incredibly useful for when you’re writing highly concurrent code and you’ve got some kind of deadlock resulting in a bad state in your programme – you can see exactly where the issue is.

    image (9)   image (10)-1

    You can then use the ‘pprof’ tool to take a performance profile of the code, providing visual representations of your programme’s runtime, making it easy to see how long different calls take and where runtime could be improved.

    Start your Go journey today

    Go is fast, lightweight, built around concurrency, is a “batteries included” language when it comes to tooling and includes incredibly useful profiling capabilities. These are some of the reasons why Go is becoming so popular in the development world and why we expect the language to grow in prominence in the years to come.

    If you want to learn more about Go, you can watch the full video of the webinar here, or listen to an audio version on the BJSS Deployed Podcast.

    And if you are interested in learning Go while working within one of the UK’s leading technology consultancies, we’re currently hiring for Go developers to be part of exciting, fast-moving projects. No prior Go experience? No problem. All you need is a passion for technology engineering and a desire to learn. Click the link below to learn about our current opportunities.

    Listen to the podcast...