В классе сегодня мой профессор обсуждал, как структурировать класс. Курс в основном использует Java, и у меня больше опыта Java, чем у преподавателя (он исходит из С++-фона), поэтому я упомянул, что в Java нужно поддерживать неизменность. Мой профессор попросил меня оправдать мой ответ, и я объяснил причины, которые я слышал от сообщества Java:
- Безопасность (особенно с резьбой)
- Сокращенное количество объектов
- Позволяет определенные оптимизации (особенно для сборщика мусора)
Профессор бросил вызов моему заявлению, сказав, что он хотел бы увидеть статистическое измерение этих преимуществ. Я привел множество неопровержимых доказательств, но даже когда я это сделал, я понял, что он прав: насколько я знаю, не было эмпирического исследования того, действительно ли неизменность обеспечивает преимущества, которые он приносит в реальном мире код. Я знаю, что это происходит из опыта, но опыт других людей может отличаться.
Итак, мой вопрос: проводились ли какие-либо статистические исследования о влиянии неизменяемости в реальном коде?