Давно наблюдаю за срачами в этом разделе, но так и не смог понять, есть ли объективные ответы на часто задаваемые вопросы.
А именно: где золотая середина при разработке ПО?
Обычно тут есть только контрастно противоположные стороны, которые ни при каких обстоятельствах и аргументах не примут иную точку зрения.
Типичный вариант:
Си/плюсы сегфолтятся и текут на больших объёмах памяти, вечные проблемы с указателями, переполнениями и полным отсутствием встроенных проверок, что отрицательно сказывается на стабильности и безопасности. Также могут быть случаи, когда программа после переполнения или неправильного преобразования типов (например, когда типы связывают через указатели: типичный пример: попытка работать с битами int'а на big и little endian) продолжит работать, запорет всю базу (или что-нибудь ещё), причём проблема всплывёт только через несколько месяцев, поэтому откатиться не получится. Бывали подобные случае с базами данных, которые могли скрытно повреждаться.
VS
Ява выжирает тонны памяти и тормозит, зато всё работает стабильно, почти все преобразования и вычисления проверяются, нет проблем с переносом на другие архитектуры и ОС, нет указателей, кодить проще, очень любима бизнесом за предсказуемость.
Или вот ещё:
Поставим много серверов, наймём макак, будем использовать микросервисы на php, размазанные по огромному кластеру, всё будет тормозить, зато очень быстро выкатим продукт, обойдём конкурентов, а сотрудников можно менять хоть каждый день из-за разбиения на «модули». Первенство окупит издержки на железо.
vs
Будем писать сразу на плюсах, пару раз запорем продакшен из-за каких-нибудь неочевидных моментов, будем делать долго, зато на выходе всё будет кондомно и оооочень бысто (хватит буквально одного-двух серверов). Ну и всё приковано к конкретным людям: если они уйдут, то бизнесу конец.
Есть ли какая-нибудь золотая середина в этих вечных спорах?
Или её нет и быть не может как в споре либералов и исламистов?
Перемещено tailgunner из development