Is Go Object-Oriented? A Case of Public Opinion
summary
Shows concrete code demos: Go has no classes, no language constructors, and no classical inheritance but supports methods on any type and unlimited embedding so composition replaces inheritance; demonstrates that package-level new functions are a tooling convenience, that receivers are really functions (callable as Type.Method(value)), that calling a method on a nil pointer can safely run if it avoids dereference, and that interfaces are implicit/duck-typed with runtime type assertions. Mentions Smalltalk/Oberon roots and a Rob Pike quote.
AI-written summary · about
chapters (12)
- 0:00Introduction and workshop background
- 6:15Mock trial setup
- 7:18Classes and constructors in Go
- 8:46Methods and type receivers
- 10:17Composition vs inheritance
- 15:56Single inheritance limitations
- 17:22Go’s object-oriented status
- 18:06Method calls and Alan Kay’s view
- 22:04Pointer receivers and nil
- 23:50Duck typing in Go
- 27:26Rob Pike’s surprising statement
- 30:38Final verdict and Q&A
related talks
04mGo is a great OO language
05mComposition Over Inheritance
33mClean Up Your GOOOP: How to Break OOP Muscle Memory
33mClean Up Your GOOOP: How to Break OOP Muscle Memory
26mGo is Boring... And That's Fantastic!
01h 01mIntroduction to Go — a Gopher on the net
52mGo Go Java Developer
21mGOOL: A Generic Object-Oriented Lanugage
