Next: The Go Project, Up: Preface [Index]
Go is sometimes described as a “C-like language,” or as “C for the 21st century.”
From C, Go inherited its
But there are other ancestors in Go’s family tree. One major stream of influence comes from languages by Niklaus Wirth, beginning with
Another lineage among Go’s ancestors, and one that makes Go distinctive among recent programming languages, is a sequence of little-known research languages developed at Bell Labs, all inspired by the concept of communicating sequential processes (CSP) from Tony Hoare’s seminal 1978 paper on the foundations of concurrency.
In CSP, a program is a parallel composition of processes that have no shared state; the processes communicate and synchro- nize using channels. But Hoare’s CSP was a formal language for describing the fundamental concepts of concurrency, not a programming language for writing executable programs.
Rob Pike and others began to experiment with CSP implementations as actual languages. The first was called:
The Plan 9 operating system carried these ideas forward in a language called Alef. Alef tried to make Newsqueak a viable system programming language, but its omission of garbage collection made concurrency too painful.
Other constructions in Go show the influence of non-ancestral genes here and there;
iota
is loosely from ‘APL’, and
Here too we find novel mutations.
defer
statement is new with Go.
Next: The Go Project, Up: Preface [Index]