Go turns 11! - Questers

Go turns 11!

Today we celebrate the 11th anniversary of Go, the programming language with probably the cutest mascot in the world. Of course, the language has many advantages besides its adorable gopher. During the years, it has evolved and became an important part of the tech stacks of not only Google but also companies such as Netflix, Dropbox, Twitch, Uber and many more.

The incredible success of Go is related to its simplicity and efficiency and the continuous efforts for constant improvements. The last update of Go was released at the beginning of August and it brought important improvements to the linker, updated allocation for small objects at high core counts and deprecation of X.509 CommonName, number of core library improvements and many more. Let’s take a deeper look at some of the new features of Go 1.15.

Improvements to the Go linker

These improvements result in reduced linker resource usage and boost code robustness. As stated in the Go 1.15 documentation, now the linking is 20% faster and requires 30% less memory on average.

The better linker performance is due to the redesigned object file format and revamped internal phrases to increase concurrency.

What’s more, these changes are part of a bigger project for Go linker modernization, meaning that there will be more linker improvements in the next releases.

X.509 CommonName deprecation

The older versions of Go were treating the CommonName field on X.509 certificates as a hostname when no Subject Alternative Names are present. In 1.15 update this behaviour is disabled by default. If still want to use this legacy behaviour, you need to add the value x509ignoreCN=0 to the GODEBUG environment variable.

GOPROXY supports skipping proxies that return errors

In the new version, the GOPROXY environment variable supports skipping proxies that return errors. Proxy URLs may now be separated with either comma, meaning that Go command will only try the next proxy in the list after a 404 or 410 HTTP response, and pipe characters – the Go command will try the next proxy in the list after any error.

New embedded tzdata package

Go 1.15 includes new tzdata package that permits embedding a static copy of the time zone database into a program. This enables the program to find time zone information even if the time zone database is not available on the local system, which means that the access to the time zone database will be more consistent and reliable on some systems.

The above improvements are just a small portion of the new features in the Go 1.15 update. You can check out the full list of improvements in the release notes.

Interested in working with Go? Check out our hot vacancies here.

The Go gopher was designed by Renee French. (http://reneefrench.blogspot.com/). Image source: GitHub, MariaLetta