Да, нулевой был просто подводкой, потому что рыба гниет с головы. Вот с нее и начнем.
Некомпетентность, дилетантство, высокомерие. Так я бы описал го-го. Эфемерную читаемость кода ставят во главу, но делают это радикально. Радикализм всегда чересчур жертвует чем-то. А должен быть баланс. Я не буду разглагольствовать, но просто покажу архитипичный пример гофера:
https://t.me/gogolang/908812 (заметка: к самому топикстартеру у меня личной неприязни нет, да и он нередко помогает в чате по делу; интересует непосредственно рассматриваемая ситуация)
Кратко - первый элемент слайса переместить в конец. В начале условие пограничного случая - если длина слайса равна нулю, то вернуть, как есть. Ниже замечание - мол, лучше сделать <2, дабы в условие пограничного случая включить и слайсы с len=1, ведь в их случае так же ничего не изменится (но мы выполним ненужную операцию). После этих слов, началась вонь вселенского масштаба - "арря нечитаемее", "ридабилити страдает", "на кодревью никогда бы условие <2 не пропустил". Спрашивается - кто такого человека вообще к кодревью тогда подпустит? А вот остальные гоферы. Потому что такая позиция встречается сообществом если не позитивно, то, как минимум, нейтрально.
Этот пример вообще полностью комичный, на самом деле. И в то же время - показательный, потому что я, будучи далеким от олимпиадного программирования, все равно лучше пойму суть с условием <2, нежели == 0. Такая точка зрения не учитывается: гофер - создание упертое. Оно своей неправоты не признает в большинстве случаев, и все так же упорно будет стоять на своем, ведь ему "нечитается". Возведено в абсолют, нахуя - не знаю. Иногда это, к слову, даже приводит
Хорошо, давайте еще примеров приведу. Практически все интересные штуки, которые можно написать, и которые не будут слишком нишевыми - уже написаны, будем откровенны. Уже есть зоопарк жсон парсеров, два мейнстрим хттп ядра и пара десятков роутеров к ним на любой вкус и цвет. Никого это не напрягает. Но попробуй свое написать - сразу заклеймят. При том это будет не просто "чем твой велосипед лучше", а сразу "твой велосипед не нужен", "возьми готовое". Даже в исходном вопросе даже разбираться не станут - гоферу важен сам факт, что ты не берешь что-то готовое. Пусть даже в учебных целях - ибо, как известно, нет средства обучения лучше, чем велосипедостроение - это не сделает никакой разницы.
Из предыдущего вытекает следующее: аудитория го - в основном перекатыши с других языков. Перекатыш с другого языка успел накрудошлепить за деньги. Он считает себя пупом мира, ведь он невъебенный специалист по укладыванию жсонов в бд и обратно. Так, подождите, на чем строится его компетентность? А, точно, ни на чем. Действительно инженеров, которые разбираются в том, что они делают, но главное - хотят узнавать что-то новое, я готов сосчитать на пальцах. Одной, блять, руки. Остальные - не считают зазорным не знать даже то, как работает программа как таковая, как переменные на стэке хранятся, как очищаются, как вообще устроен вызов функции. Нет, не знать - не есть грех, грех есть - не хотеть знать. Отнюдь не мешает мнить себя трамвайным царем всея голанга, и гнобить тех, кто хочет разобраться глубже. Да, "не надо тебе настолько глубоко это знать" - тоже случалось. У меня это вызывает самый натуральный диссонанс.
Собственно, а плохо ли это? Нет, я все равно в го-го даже заходить перестал, ибо дело гиблое, можно без проблем и без этого прожить. Да вот только, коммьюнити в целом такое сформировалось, а это уже напрямую влияет и на язык как таковой, и на его дизайн как частный случай. А, соответственно, начинаю страдать уже и я. А я терпеть не могу бодаться с компилятором.
* - github.com/mowshon/iterium, пример использования с брутфорсом хэша отрабатывает за 4.5 минуты. Без итериума - 30 секунд