0. Женерики
А нулевой потому, что это извечная проблема. Ну, была, их все-таки добавили. Спустя 11 лет после релиза, если что.
Ладно, временили 11 лет (можно сказать, я с 4 лет ждал их появления). Имеем по итогу ПОЛОВИНУ стд либы в пустых интерфейсах. Почему это хуево? Да потому, что мы таким образом избегаем от типосистемы. Она настолько примитивная, что даже стд либу с ней нормально сделать не могли, вы только вдумайтесь - а вам на этом еще круды пилить. Хорошо, ладно с той стд либой, которую мы все так любим (обмазанная any синк мапа, контексты, сортировки). На это посмотрели крудошлепы, и подумали: заебца! И знаете что? Мы теперь имеем тонну легаси с активным эксплуатированием any.
Ладно, я немного лукавлю. В стд либе одни кор мейнтейнеры берут any, потому что другим фИлОсОфИя Не ПоЗвОлЯеТ, видите ли, кривая вхождения станет выше (настолько низкого мнения они о круд-макаках). Но нахуя они крудошлепам? Я, конечно, занимаюсь другим профилем, дроча на перфоманс в ядре вебфреймворка, но практически всегда выбор обусловлен "быстрее нашлепать". Практически всегда есть способ реализовать задачу, не прибегая к стиранию типов. Но пРиДеТсЯ дУмАтЬ, бОлЬшЕ вРеМеНи ПоТрАтИтЬ. Извечная болезнь гофера. В итоге имеем сужение типа, посредством явного его приведения либо к более узкому интерфейсу, либо - что еще хуже - к конкретному не-интерфейсному типу. Что мы получаем? Чуть проебались - паника. Заслужено? Полностью. Можно было избежать? Абсолютно.
Скажите мне, пожалуйста, зачем? Зачем было столько ждать? Каким хуем команда инженеров из гугла, при том с одним из отцов С во главе, пришла к выводу, что полиморфизм нам нахуй не нужен? Да, есть видео, на котором Роб Пайк прямо заявляет, что язык был создан для гугломакак. Но неужто расчет был на настолько макак, что они даже программировать не умеют?
Post #201
97
- 👎 3