Кто нибудь применял или видел generics в серьезных Go проектах?

Начну с того, что generics являются одной из долгожданных и широко обсуждаемых функциональностей в языке программирования Go. К сожалению, на данный момент, Go не имеет нативной поддержки generics.

Однако, сообщество Go прилагает усилия для разработки и внедрения generics в язык. В декабре 2019 года было объявлено о создании официальной группы дизайна, работающей над разработкой generics в Go. Проводятся специальные исследования и эксперименты, чтобы понять, как generics может быть наилучшим образом реализовано в рамках философии Go.

На данный момент существует несколько решений для эмуляции generics в Go, таких как генерация кода с использованием инструментов, например, go generate, или использование интерфейсов и типов данных для достижения похожего эффекта на уровне компиляции.

Важно отметить, что такие решения являются "обходными путями" и имеют свои недостатки. Они могут привести к повторному написанию кода, дублированию, ухудшению производительности и усложнению поддержки кода.

Отдельные сообщества и проекты разработали свои собственные реализации generics в Go, однако они не являются частью стандартной библиотеки или языка Go.

Таким образом, можно сказать, что generics в Go в настоящее время находятся на стадии обсуждения и разработки, и хотя некоторые эксперименты и решения были предложены и использованы в небольших проектах, в реальных и серьезных проектах Go они все еще относительно редки. Однако, с учетом огромной популярности и потенциала Go, вероятно, что в будущем появится официальная реализация generics, которая будет поддерживаться и рекомендоваться сообществом Go.