Chapter 1 Design Philosophy and History
- 1.1 The Evolution of Programming Languages
- 1.2 An Overview of the Go Language
- 1.3 Communicating Sequential Processes
The reason I was enthusiastic about Go is because, at the same time we were starting on Go, I tried to
read the C++ 0x proposed standard, that was the convincer for me.
-- Ken Thompson
This chapter explains how Go came to have its present shape. It begins with the engineering problems Google faced, what each of the three designers brought, and why Go deliberately offers fewer features (1.1). It then describes the three parts of Go, the language, the runtime and the toolchain, and the unusual decisions made in each (1.2). Finally it traces the ideas behind goroutines and channels from a 1978 paper to Go’s design (1.3).