Ответ на пост «Больше его никто не видел»
Я почитал комментарии под этим постом и честно говоря меня разочаровало такое количество задротов не понимающих прелести динамической типизации.
Для начала проведу краткий ликбез:
Статическая типизация с одной стороны увеличивает время разработки так как при внесении каких-либо изменений тайпчекер начинает падать из-за несоответствия типов и вам приходится проходиться по коду и изменять типы во всей цепочке вызовов.
С другой стороны - она уменьшает количество багов, так как тайпчекер гарантирует что переменную типа X используют именно как переменную типа X - вы не сможете скажем случайно запихать строку в переменную где должно быть число или передать числовой ID в функцию которая ожидает объект.
По сути типизация - это такая система предварительной формальной верификации которая позволяет отловить баги во время компайлтайма до того как они протекут в рантайм.
---
А теперь представьте себе галеру где есть два разработчика: Вася который использует язык со статической типизацией и Петя который использует язык с динамической типизацией. Они работают над двумя идентичными проектами и им дают идентичную задачу: Например взять поле куда раньше можно было добавить только число и добавить возможность передавать туда строку.
Вася со своей статической типизацией после добавления возможности принимать строку сразу столкнётся с кучей проблем из-за того что остальные методы в его программе ожидают именно число. Ему придётся проходиться по всей цепочке вызовов куда может попасть значение из исходного поля, менять тип с числового на алгебраический ЧИСЛО|СТРОКА, вполне возможно он заметит логические ошибки связанные с тем что некоторые функции не имеют осмысленного сценария для обработки строк и Васе придётся переписывать часть функционала.
Петя в свою очередь может просто исправить валидацию поля разрешив ему принимать строку и со спокойной душой закрыть таску.
Вы можете возразить: "но ведь он как и Вася может столкнуться с ситуацией когда некоторые функции не имеют осмысленного способа обрабатывать строку и пытаются обработать значение как число!". Безусловно, может. Но Пете из-за отсутствия тайпечекера наличие таких ошибок не помешает выкатить задачу в прод. А из-за того что подобные ошибки зачастую вылезают в модулях которые на первый взгляд с изменениями Пети никак не связаны менеджер не сможет понять что новые баги вызваны именно Петей - в его глазах это будут баги которые появились "сами по себе".
В итоге с точки зрения менеджера:
Вася - ленивый программист который несколько дней делал простейшую таску, а затем стал не нужен потому что программа работает без багов.
Петя - хороший работник который за несколько часов закрыл таску и пошёл закрывать новые таски с багами.
Угадайте кого менеджер повысит, а кого - нет.
---
Именно из-за непонимания таких тонких психологических моментов ботаны Васи дрочат свои программы на C++/Идрисе/Хаскелле в НИИ за 40 тысяч в месяц, а Пети живут в ЛА и пишут новые ЖС фреймворки на деньги лоха-инвестора за 10к долларов в месяц.
Вот он, менеджмент на все века
Вы хотите головоломок?
Их есть у нас! Красивая карта, целых три уровня и много жителей, которых надо осчастливить быстрым интернетом. Для этого придется немножко подумать, но оно того стоит: ведь тем, кто дойдет до конца, выдадим красивую награду в профиль!
Не мем, а жиза
При расследовании главное не выйти на самих себя — это же классика
Классика управления проектами
Слесарь на работе сказал мне
Я ничем ему не возразил
Что надо успеть за выходные
Выспаться, провести генеральную уборку, посмотреть все новые сериалы и позаниматься спортом. Потом расстроиться, что время прошло зря. Есть альтернатива: сесть за руль и махнуть в путешествие. Как минимум, его вы всегда будете вспоминать с улыбкой. Собрали несколько нестандартных маршрутов.
Когда ПМ просрал все сроки, а разработку надо уложить в деллайны
Коммент для минусов с ссылкой на телегу внутри XD.