research!rsc: Go Data Structures: Interfaces - eines der wirklich interessanten Features in Go: die Interfaces. Go-Interfaces haben einen entscheidenden Vorteil über Scala Traits, Java Interfaces, C++ Multiple Inheritance: sie werden nur als Interface definiert, aber implementierende Strukturen müssen nicht von diesen Interfaces erben. Interfaces können auch für Code definiert werden, der nicht im Source vorliegt und von ganz woanders kommt. Ich wünschte Scala hätte sowas bei den Traits. Das wäre ein gutest Stück näher an Duck Typing mit compile-time Prüfung. "Ich will hier ein Ding sehen, das folgende Funktionen mit folgenden Signaturen unterstützt" ist ja genau was Duck Typing ausmacht - nur das es z.B. bei Python oder Smalltalk oder anderen dynamischen Sprachen üblicherweise erst zur Laufzeit kracht.