👊 Когда кто-то наезжает на Go, батя идет быть *бычы Наткнулся на
статью, где, на мой взгляд, бездарно срут на Go. И я бы прошел мимо, если бы не кол-во лайков и видеоразборов на YouTube...
Никому не позволю обижать моего малыша.
Претензия автора: "Слишком мало синтаксического сахара, не хочу писать руками, это придумали старперы, которые не хотят смотреть дальше С"
Еще, он как стандартный автор подобной статьи приводит намеренно исковерканные примеры, а в противовес предлагает язык D... ну, опустим эти детали, они присущи многим статьям подобного рода (но почему же D... какой странный и абсолютно безумный выбор...)
Мой ответ таков:
–
Кол-во строчек кода не должно быть меркой качества кодовой базы.
Чаще всего, дополнительные строчки – это более детальное раскрытие мысли от 1 строчки, которая может компактнее, но намного менее понятным образом что-то объяснить (пример, if против тернарника).
Да, когда ты пишешь сам свой код, хочется воспользоваться красивым тернарником, возможно, даже двойным-тройным, но каждый раз, когда ты наткнешься на такую конструкцию, написанную кем-то другим твой пукан загорится.
Поэтому понятность кода, важнее его кол-ва и Go со своим лаконичным синтаксисом заставляет разработчиков писать такой код.
–
Тебе не НУЖЕН синтаксический сахар, ООП, дженерики и подобное, чтобы делать приложение с быстрым IO и не заниматься менеджментом памяти
Еще одна из претензий автора: "Его сделали люди, которые кроме С ничего не хотят изучать" – наоборот, его сделали люди, которые выучили столько языков, что поняли, что С и процедурщины достаточно, чтобы максимально качественно, просто и производительно решать вопросы массивного IO и не решать вопросы с памятью, засчет встроенного Garbage Collector, для чего Go и был придуман.
Вот это вот все, что написано сверху может быть крайне удобно для написания комплексной бизнес-логики (добро пожаловать в C#, Java и даже TypeScript), но не является необходимостью для задач, которые идеально решает Го.
Хотя я очень скучаю по Union types и Pattern Matching 😢
–
По-настоящему "умный программист" (как объявлено в заголовке статьи) ценит тупость
Чем меньше процессорных мощностей мозгов уходит на разбор и понимание каждой строчки, каждого слова и символа, тем лучше, потому что ты высвобождаешь память и фокусировку на более сложные вещи. Потому что сложнее самого кода – логика, по которой он строится, еще сложнее – цепочки логики всей кодовой базы, еще сложнее – понимание логики набора кодовых баз, разделенных на разные приложения.
Я буду рад, если мой язык не забирает у меня слишком много сил на осознание, что в нем происходит и Go с этим справляется просто отлично.
Итоги
Несомненно, идеальных языков не существует, но существуют языки, которые для определенных задач ну очень хороши, например, Go и веб, или Go и кросплатформенные утилиты, или JS и поедание говна
Всем мощной прокачки 🥱