5 ms·
It's been mentioned from time to time that Go is a successor of C. As I recently had a look into the Pascal/Oberon family. It looks that Go is no less influence
by typ 6y ago
It's been mentioned from time to time that Go is a successor of C. As I recently had a look into the Pascal/Oberon family. It looks that Go is no less influenced by Oberon than C. The CSP paradigm likely comes from Rob Pike's previous works. And the syntactical elements, such as the operators and punctuations, also follow the C tradition. But the overall program structure (including the approach to OOP and probably the 'evolving-by-reduction-rather-than-addition' philosophy) makes it seem closer to the Oberon linage.
- peteretep 6y ago> The CSP paradigm likely comes from Rob Pike's previous works "The CSP paradigm" comes from CSP: https://en.wikipedia.org/wiki/Communicating_sequential_processes https://en.wikipedia.org/wiki/Communicating_sequential_proce... which predates the vast majority of Rob Pike's work (eg: before he went to Bell Labs).
- dgb23 6y agoObviously what OP meant is the implementation of it. Rob Pike mentioned Tony Hoare‘s work in almost every talk he gave about Go‘s concurrency.
- yiyus 6y agoYes, that's the original inspiration. But Rob Pike has been implementing CSP ideas in different languages for a few decades now, and all that work has highly influenced the implementation in Go.
- pjmlp 6y agoActive Oberon also had co-routines in the form of active objects. Also note that 'evolving-by-reduction-rather-than-addition' philosophy is only part of Wirth's Oberon linage. Oberon-2 (which Go got its method syntax from), Active Oberon, Component Pascal and Zonnon, are all Oberon descendents from ETHZ as well, which go into the direction of mainstream languages, including support for generics or more low level programming capabilities.