Let's Go Further: Build Concurrent Software using the Go Programming Language
Google Tech Talk. April 25, 2012. Presented by Sameer Ajmani. ABSTRACT. Go is an open source programming environment that makes it easy to build simple, reliable, and efficient software. One of Go's key design goals is code adaptability; that it should be easy to take a simple design and build upon it in a clean and natural way. Go Version 1 (or Go 1 for short), which defines a language and a set of core libraries to provide a stable foundation for creating reliable products, projects, and publications, was recently released and available for use. Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java. Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, it is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for. Sameer Ajmani, a Software Engineer at Google and member of the Go programming language engineering team, will give a introduction to Go from a programmer's perspective. Sameer joined Google engineering after receiving his PhD from MIT and has worked on several core infrastructure projects at Google..