Дженерики, шаблоны, erasure: параметрический полиморфизм в разных языках
Один вопрос — как написать код, работающий для многих типов, без дублирования — языки решают принципиально по-разному: мономорфизация (C++, Rust), стирание типов (Java), гибрид GC-shape stenciling (Go), реификация (C#). За синтаксисом стоит выбор компилятора, и он даёт измеримые последствия по скорости, размеру бинаря и выразительности