После многих лет разработки до меня наконец-то дошло, что является основной проблемой.Не фичи языка или костыли, которые мы создаем.Не сбор требований и нехватка данных.Не написание надежного кода и его тестирование.И даже не изменения как таковые.Главная проблема — это предположения. Пока они выполняются, все работает. Как только предположение оказалось нарушенным — все, приехали.В динамикодрисне вся работа кода построена на предположениях, которые нельзя автоматически проверить. Весь код придется выкинуть и переписать, или внимательно проверить вручную, что по трудозатратам равноценно.В супернадежном Хачкеле, "ко-ко-ко скомпилировалось значит работает", нарушение предположений опять же заставит переписать все релевантные части — слишком уж он ригиден для изменений. Или изначально надо писать суперобобщенный код, везде протаскивать конфигурацию через Reader и охуевать от многословности, которой в функциональщине быть как бы и не должно.И только в жабоподобных языках все в порядке. Золотая середина между надежностью и возможностью впихнуть костыль в любое место. Что-то поменялось, выяснился неизвестный факт? Добавим пару строчек в XML-конфиг, вытащим условие посреди кода, как фокусник вытаскивает кролика из шляпы, и все снова в порядке. Новые предположения все равно не абсолютны, так что вылизывать код каждый раз — пустая трата времени. Накопится долг — перепишем все с учетом вновь открывшихся данных.Именно поэтому жабогоспода всегда будут прилично зарабатывать, не напрягаясь, а хипстеры и борщехлебы будут вынуждены каждый день читать про новые фреймворки, монады с линзами, получая лишь долю того, что платят жабабогу. И пока задроты изучают технологии, у жабабояр есть время на развитие софтскиллз, социализацию и рост в синьоры/тимлиды/менежмент.
>>1062767 (OP)s/предположения/контракты/g
>>1062770Нет, именно предположения как часть реального мира, а не кодоориентированные контракты, которые лишь увеличивают ригидность.
>>1062771Не понял, как ты собрался проверять предположения и какие, в этом смысле, отличия между динамодрисней и жавой?
>>1062774Пример простого предположения:"Если товар в наличии, покупатель хочет купить его. Если товара нет в наличии, покупатель хочет узнать о его появлении."И в жабе, и в пхп мы можем прописать это условие. Но завтра оказывается, что мы учли не все:"Если товар в наличии, покупатель хочет купить его. Если товара нет в наличии, покупатель хочет узнать о его появлении или предзаказать его."В жабе мы просто добавляем значение Preorder в ButtonTypeEnum и добавляем обработку везде где надо. В пхп мы делаем как бы то же самое, но есть один нюанс: IDE не сделает работу за нас, найти все места для изменений придется самостоятельно. Чем сложнее предположения — тем сильнее страдает пыхораб, а для жабобогов сложность не принципиально не меняется.
Предположил что мать ОПа выебали хачи, а потом он родился
>>1062778То есть в пхп ни фреймворков, ни волшебную иде не завезли? Что ж хуево...
>>1062778> В пхп мы делаем как бы то же самое, но есть один нюанс: IDE не сделает работу за нас, найти все места для изменений придется самостоятельно. Чтааааа, это серьёзно? У пыходебилов за все это время не появилось нормальной иде?
>>1062785>>1062800IDE/фреймворки сами по себе чудес сотворить не могут, язык должен быть предрасположен к тому, чтобы они могли приносить настоящую пользу.Взгляните на код средней жаба-макаки. Он отвратителен, но, если макака не обмазывается рефлексией, то IDE может исправить этот код без участия человека, ведь система типов достаточно хороша, чтобы не наломать дров.А теперь взгляните на код средней пхп-мартышки. Где-то используются кошерные фичи фреймворка, где-то есть аннотации типов, но большая часть является неструктурированной лапшой, вместо объектов используются словари/массивы/строки. Сами объекты зачастую являются бессмысленной синглтон-оберткой над процедурщиной.Да, с должной дисциплиной любой язык позволяет писать нормальный код, в котором IDE сможет разобраться. Но в пхп такой код писать бывает сложно(и не все хотят напрягаться), а в жабах такой код сложно не написать.
>>1062767 (OP)>ХочкильЖавамартышка размышляет о том, чего не может знать и понимать. Жавамартышке лучше забыть о хачкиле и продолжить крыть хуями динамикопетушков
На чем разрабатывал то?
>>1062767 (OP)Остановись, пока не поздно. Это костенеет мозг, отказ от предположений ведет к деградации до ГО-программиста.
>>1062778>просто добавляем значение Preorder в ButtonTypeEnum и добавляем обработку везде где надо>добавляем обработку везде где надо>добавляем>везде>простоВсегда проигрываю с паттерно-дебилов.Почему бы сразу не признаться, что ради одной кнопки, нужно перелопатить половину файлов в проекте?
>>1062767 (OP)Открой для себя свифт. С типизацией все охуенно аки в Хачкелле, но при этом очень гибок. Даже некое ощущение, что на скриптоязыке ебашишь, при этом никаких допущений, компилятор везде тебя подстрахует.
>>1063009>но при этом очень гибок.Только это просто костыль для objc/c/cpp на которых написаны все API в маке/айос
>>1062778> Найти все местаА потом оказывается что часть этих мест в скомпилированном class-файле, написанном уволившимся сотрудником 4 года назад с кучей грязных хаков, декомпилятор шлёт нахуй, что код на самом делает - нихуя непонятно, доков нет, а разбираться в байткоде джавамакаку не учили.
>>1062767 (OP)> социализация> рост в менеджмент> не понимает, что изучение монад с линзами - это удовольствие, а не работаЧувак, что ты тут забыл?
>>1062778У тебя какие то перевратные представления о структуре интернет магазинов на пхп. Преордер это один новый метод в контроллере который обрабатывает заказы, будет вызываться по клику на кнопку "Предзаказать", новый метод в модели заказа, будет создавать заказ с пометкой что это предзаказ, новый столбец в таблице заказов, там будет инфа о том предзаказ это или нет, ну и какие то изменения во вьюхах. И все.В чем тут преимущества явы на пхп, не ясно.
>>1063012>>1063014Любой язык - костыль для asm, на котором написан загрузчик оси.
>>1062778>>1062767 (OP)ОП - хуй который решил всем показать какой он охуительный, но сразу обосрался ИТТ.
>>1062800Кекнул с программиста на IDE.>>1062778А тут я кекнул с манявров. Заметьте как он видит добавление новой функции. Он даже выстраивает диалог так, чтобы вы не смогли догадаться что это всего-то добавление новой функции. Но дальше просто пушка "IDE не сделает работу за нас", то есть это уже норма что в 2к17 ты как-бы работая программистом сам признаёшься что ты нихуя не умеешь без IDE.
>>1063165Пришел тут день, когда забыли о платформонезависимых языках, стартующих без ОС ?