В любом топике, посвящённом сравнению двух технологий, будь то операционные системы, языки программирования, или банальные таск трекеры, обязательно найдётся комментатор, который скажет — «нельзя сравнивать несравнимое, каждой задаче свой инструмент».
Ничто в таких топиках не выводит меня из себя больше, чем эта фраза. Она не помогает ничего понять, ничего не проясняет, а самое главное, в контексте топика, как правило абсолютно бессмысленна!
Если попросить комментатора обрисовать задачи, для которых нужно применять первый инструмент и задачи, для которых нужно применять второй, то внезапно выяснится, что его взгляды радикально расходятся со взглядами примерно половины аудитории. И он не понимает, что вообще-то весь смысл дискуссий на тему того, что лучше, сводится к тому, чтобы выяснить в каких случаях какой инструмент использовать.
Комментатора, кстати, можно спросить, откуда взялись те люди, которые с ним не согласны. И он с радостью ответит, что он изложил объективный взгляд на проблему, а остальные просто фанаты предлагаемой ими технологии, вот и всё. Именно поэтому они, вместо того, чтобы выбирать инструмент под задачу, суют любимую тулзу везде, куда только возможно.
Особенно хорошо такое поведение иллюстрируется в дискусиях Windows vs Linux.
Появляется человек, говорит, что каждой задаче свой инструмент и что споры на эту тему бессмысленны. Когда его спрашивают, что он имел в виду, и какие задачи он предлагает решать с помощью какой ОС, он спокойно отвечает, что конечно Linux надо ставить на сервера, а когда речь идёт о десктопах или ноутбуках — надо использовать Windows. Собственно полностью игнорируя тот факт, что большая часть дискуссии посвящена доказательству того, что Linux великолепен для домашнего использования, а в остальной части люди аргументировано доказывают, что ничего лучше, чем Windows, на сервер установить просто нельзя. Они в его глазах фанаты, мнение которых внимания не заслуживает. Но, вместо того, чтобы включиться в дискуссию и попытаться доказать свою позицию фактами, он позиционирует себя носителем абсолютной истины.
Лучше бы он прямо сказал — «Линукс на сервер, а винду простым юзерам, а кто со мной не согласен — дебилы». Это было бы как-то честнее и вежливее.
А теперь я попунктно изложу всё, что на мой взгляд нужно знать авторам подобных коментариев.
Все и так в курсе, что для каждой задачи надо подбирать свой инструмент!
Никто с этим не спорит, вся суть дискуссии в том, чтобы выяснить какой инструмент выбрать для определённого спектра задач. Если ты явился в дискуссию и с умным видом начал вещать очевидные вещи — ты явно либо не понимаешь о чём вообще разговор, либо считаешь своё мнение априори правильным. В первом случае расслабься и почитай, что люди хотят сказать друг другу, во втором — добро пожаловать в дискуссию. Только не забудь в своём комментарии указать какому конкретно инструменту подходит какая конкретно задача и напиши почему. Будешь сильно удивлён количеством не согласного с тобой народу.
Кстати да, о народе.
Твоё мнение зачастую радикально отличается от мнения других людей
Радикально. К примеру, если ты думаешь, что всем очевидна полная бесперспективность использования LISP для написания операционных систем, то сюрприз, люди их пишут. Поэтому не думай, что твоя капитанская лабуда про инструменты и задачи вообще содержит хоть какую-то полезную информацию. Единственное, что можно оттуда почерпнуть, так это что ты считаешь инструменты разными и имеешь своё мнение по поводу того, какой где применять.
Так все тут с тобой солидарны и своё мнение тоже имеют.
Или ты хочешь сказать, что сравниваемые инструменты очень разные, и процедура сравнения теряет смысл?
Ты не поверишь, но…
Сравнивают только разные вещи
Потому, что одинаковые вещи — они по определению эквивалентны.
Сравнивают разные вещи и сравнивают их по определённому критерию.
Чтобы лучше донести свою точку зрения, предлагаю сравнить кролика и чайник по критерию удобства кипячения воды. Чайник явно лучше, потому что кроликом воду особенно не вскипятить, хотя конечно, уверен, альтернативные точки зрения существуют.
Сравнивать вещи нельзя, только если нету никаких критериев.
Тут важно упомянуть ещё один факт.
В статьях A vs B критерии всегда присутствуют, пусть и неявно.
Ворвись в обсуждение что лучше — Go или Rust и спроси как у этих языков с поддержанием морального облика программистов. На тебя конечно посмотрят как на ненормального, но ты извлечёшь для себя важный урок — все спорщики неплохо представляют себе критерии по которым нужно сравнивать языки программирования. Только они хорошо понимают о чём говорят, и явной необходимости перечислять критерии не видят. Дискуссия достаточно быстро переходит в обсуждение преимуществ и недостатков языков при решении тех или иных задач, включая простоту чтения кода и лёгкость его написания.
Или может ты хотел сказать, что выбор инструмента уникален для каждой конкретной ситуации и, не имея всех подробностей контекста, обсуждать инструменты нельзя?
Так вот, поверь, мы в курсе. Но мы также в курсе существования множеств задач, которые проще решить определённым множеством инструментов и, на случай если ты хочешь сказать нам, что из любых правил бывают исключения — мы это тоже знаем. И выбор, естественным образом будем делать самостоятельно, интенсивно используя знания, полученные нами в ходе обсуждения соответствующих топиков, в комментариях к которым ты, кстати, нам ничего полезного так и не сказал.
В общем что я хочу сказать тебе от лица всех, кто думает, что go отстой, потому что в нём нет дженериков и всех, кто думает, что отсутствие дженериков ни разу не проблема, а также от лица тех, кто считает, что nodejs заруливает go в минуса.
Спасибо кэп!
А теперь присоединяйся к нам, изложи свою точку зрения, расскажи как ты обходишься без дженериков, или почему ты не можешь без них жить, или расскажи, что ты менеджер и что такое дженерики не знаешь, зато знаешь как трудно нынче найти толкового гофера.
Или лети дальше, другие топики страдают без твоей неоценимой помощи и ждут твоего неминуемого визита!
Автор: poxu