Чем плох Go?
Отчего многие его так не любят, что с ним не так? Ну кроме того, что:
- Нет дженериков, укуренные решения вроде
sync.Map interface{}
в stdlib как следствие; - Базилион способов объявить переменную;
- Магические функции
new()
иmake()
, которые работают только с некоторыми типами; - Выбивающиеся из общего стиля ЯП
iota
вместо enum,<-
и->
; - Сильно ограниченные константы, пригодные только для базовых типов данных;
- Кастрированные кортежи;
- Бесполезность поддержки unicode в коде ввиду того, что экспортированы могут быть только элементы, начинающиеся на символ из ограниченного подмножества;
- Unicode code point'ы можно складывать как числа;
- Впиндюренные в сам ЯП, а не в библиотеку «горутины»;
- Невозможность форка проекта с сабпакетами (он не скомпилируется с помощью
go get
/go install
, официальная рекоммендация - использоватьsed
); - Сообщество, которое в каждом объективном дефекте видит глубокий смысл и большой плюс;
- Go 2, который не пофиксит ничего из этого, кроме дженериков.
Вроде, не критично всё это, жить можно же?