Похоже, у вас недостаток знаний в области компьютерных наук или, возможно, просто отсутствие опыта работы с C.

Во-первых… отсутствие дженериков ?? Интерфейсы являются универсальными.

  1. Манипуляции с фрагментами. Срезы - это способ доступа к массивам. Это не связанные списки. Вам бы пришлось проделать подобные прыжки с обручем на других языках, которые не интерпретируются. Если вам нужны списки вроде Python или PHP, используйте пакет списков https://golang.org/pkg/container/list/. Однако мне бы хотелось, чтобы у нас были отрицательные индексы для доступа к срезу, и я знаю, что нет веских причин, по которым они их удалили. Они изначально были на языке.
  2. Нулевые интерфейсы: вы пытаетесь объяснить, почему Go не является прямым, на очень непростом примере. Каков вариант использования в реальном мире? Что, черт возьми, вы пытались сделать, когда обнаружили эту «проблему» ??
  3. Переменное затенение: узнайте о сфере действия. Это не PHP. Мутация глобального состояния внутри вложенных блоков приводит к ошибкам. Вероятно, 25% ошибок, которые я видел, связаны с плохо определенным кодом.
  4. Невозможно передать структуру []: намеренно. Лично я бы все равно не пропустил срезы интерфейсов - в конце концов, вы не описали списки методов в структурах, вы описали только саму структуру. Причина в том, что Go был разработан, чтобы не скрывать дорогостоящие операции. Преобразование одного объекта в списке происходит за время O (1). Преобразование фрагмента из n объектов происходит за O (n) времени. Отсутствие сокрытия потенциально дорогостоящих операций - хорошая вещь для предсказуемой производительности.
  5. Диапазон по циклам значений. Серьезно? Если вы хотите перебрать список указателей, начните с фрагмента указателей…. В противном случае просто доступ через индекс вместо значения.
  6. Жесткость компилятора. Учитывая тот факт, что вы не используете механизмы для удаления мусора из своего проекта, я могу только догадываться, что вы хотите добавить мусора в свой проект.
  7. Go Generate: Никогда не трогал вещи. Даже не испытывал соблазна. С таким заголовком, как «Почему Go - плохо разработанный язык», я ожидал бы 7 проблем с языком, а не вспомогательными инструментами.

В общем, я считаю, что эта статья просто приманка для ссылок.