In this chapter, we looked at how the Go language is very well-suited to developing graphical applications. Its design for handling concurrency makes the types of multithreading needed by GUIs easy to manage. Channels, the main thread-communication feature, are a little hard to learn, but through some basic examples, we saw how common concurrency issues could easily be avoided. The write-once-compile-anywhere ethos of Go means that developers can easily compile the same code and deliver native apps across most common platforms from a single codebase using the provided tools. As a modern language, it's designed to operate in a connected world and its support for network communications and web services is excellent – we ran examples that illustrated how objects can be easily transformed to and from common web formats.
Having explored the many ways that Go suits graphical application development, we also reflected on the many toolkits available to choose from. Despite not having a standard...