After the significant Go release 1.9 in 2017, the language creators are happy to present the new major update — Golang 1.10. They continue to please Golang developers with powerful and useful software solutions, making the technology even more attractive, thus increasing its usage among the IT community.
Even though just a few days have passed since the release, our Golang development team has already appreciated new Golang features which were implemented in the core library. Therefore, we are glad to share our first impressions to help you go deeper into Golang 1.10 changes and see what’s new Go’s enthusiasts have prepared for its users.
GOLANG TESTING BECOMES MORE CONVENIENT
As we have already mentioned in our recent Golang Testing: The Essential Guide, the language delivers its users with convenient testing tools as well as with a fast adaptive conception of Go’s testing methods. However, the new Golang 1.10 release simplifies this process even more.
We distinguished the new caching opportunity of the Go 1.10 update. Now, the test results & builds are automatically cached with the help of the go test command, which are especially useful when working on large projects. The main reason why this change is so important is that every new modification in the source code requires developers to restart the whole testing process.
GO’S COVERAGE PACKAGE & BUGS DETECTION
As one of the most pleasant features of Golang, we also noted the test –coverpkg implementation, which now interprets its arguments as a patterns list, separated by commas, to match the dependencies of each test. Now, you only need to add coverpkg=all, and then it will make the project coverage at once.
The identification of bugs during the test coverage was also significantly improved. Now, before running the test, the identifying process of all unforeseen problems will start automatically. With the help of the go vet command it will be possible to detect all errors that are in the testing package. So, the test package will not be launched if at this stage some obstacles to its successful implementation will be detected.
GOLANG RUNTIME & GARBAGE COLLECTOR IMPROVEMENT
Among the IT community, Golang service has always been famous for its fast performance and the runtime possibility that works as a set of interacting computing processes that run in parallel (simultaneously). With the new Go 1.10 release, this has improved even more.
Here, the point that deserves attention are the LockOSThread and UnlockOSThread functions which control whether goroutine is blocked for a particular operating system thread. Before, if we called LockOSThread more than one time in a row, it was equivalent to one call, and one UnlockOSThread has always unblocked the thread. Now, if LockOSThread is called several times, UnlockOSThread should be called the same times to unlock the thread.
Golang developers also pointed out the continuous improvement of Go’s Garbage Collector. Now it does not cause a delay in the allocation latency, and use the lower part of the overall process during the launching.
CHANGES IN GOLANG’S CORE LIBRARY
In the general sense, the core Go’s library hasn’t changed significantly. However, special header formats were expanded and improved. Also, Go 1.10 release adds more possibilities to the ZIP archives encodings with support of times and characters. In Go 1.10, the Reader and Writer now maintain the large numbers of Zip extensions.The Unicode package has been upgraded from Unicode 9.0 to Unicode 10.0 ( adding 8,518 new characters that include new scripts, 56 new emoji, and a Bitcoin currency symbol).
Certain changes were added to the core of Go’s library and include new string types, Builder changes (with bytes replacement), te modification in the API Builder, etc. Therefore, the set of improvements was also made in the DataBase & Driver systems, and the client’s side relations modifications (net/http).
GENERAL FEELING OF GO 1.10 RELEASE
If we look at the overall Go’s releases history, the Golang 1.10 update isn’t so major as, for example, the 1.5 release. However, it brings a lot of enjoyable modifications that improve the coding efficiency for Golang users. The greatest changes we noted in this area is testing tools and runtime upgrade, which makes the Go’s code cleaner and smoother.
We also liked small but pleasant improvements in the standard Golang library, as well as the opportunity to participate in the language strengthening through the open Golang 1.10 release notes that offer the possibility to leave comments and suggestions for the further language’s growth by filling a special bugs form.
We will be glad if you like our mini-review, which probably will inspire you to start creating your own mobile or web application with the fresh and updated Go 1.10 version. Therefore, If you have any questions, just contact us, our Golang experts are happy to answer and provide you with more extensive expertise.
Want to find out more about modern capabilities of the software development? Read our relevant articles:
Web development in 2018: Trends and Predictions
Why Do Enterprises Go Golang?
Golang Testing: The Essential Guide
Ruby vs Golang Comparison: Which is the Best Solution?