This workshop will explore Google Go with an emphasis on writing the kind of high-productivity code which is typical of dynamically typed languages whilst retaining the precise control over runtime performance and resource usage that static type checking enables.
The treatment will be divided into several sections, starting with an introduction to Go’s standard toolchain then moving through various practical aspects of syntax, memory model and type system to build familiarity with the language. Here we’ll meet the distinction between reference and value types, slices and maps, and the user-defined types which form the basis of Go’s object model. This will lead naturally to Go’s interface types and the method-based type inference which forms the basis of duck typing.
We’ll complete our coverage of Go’s type system by studying first-class functions, closures and goroutines along with the CSP concurrency model they support. This will demonstrate that Go is a powerful general purpose programming language suited to writing flexible, scalable, maintainable applications for modern multi-core and distributed environments.
For the final section we’ll discuss integrating Go code with existing C libraries and with assembly language, leading into a more general discussion of Go’s standard tools for testing and performance benchmarking.
By the end of the workshop you should have a reasonable grasp of how Go stacks up for real-world development and a firm foundation from which to explore further.
English(hacker + physicist + musician + libertarian + goth + catholic + tory + LgbT) = Human(superior sociable contrarian neophile) bio from Twitter
Sign in to add slides, notes or videos to this session