&quot;Interfaces aren&#x27;t generics at all.&quot;<p>It&#x27;s a definition game. One component of &quot;generic&quot; is &quot;generic algorithm&quot;. Go has that covered; the Sort package provides a &quot;generic&quot; algorithm via an interface specification. A lot of C++ template code is built around implementing generic algorithms at compile time rather than Go&#x27;s run time, for instance.<p>If you choose to call that &quot;not generics&quot;, that&#x27;s a valid choice of definition, and certainly makes sense in a Rust context, but it&#x27;s not universally valid.<p>For context, I&#x27;m not trying to bend a definition to &quot;defend Go&quot;... I generally have a low opinion of software engineer&#x27;s ability to create universal definitions of terms that apply across all languages, and I <i>observe</i> that pretty much any term you can imagine varies across language communities. I&#x27;m not the one creating terminology vagueness. And I have observed that every time someone contradicts me and insists some term really is rigorously defined and agreed to by all major language communities, you can <i>count</i> on two or three disagreements from not-me in the replies...