Как бы то ни было, я полностью на вашей стороне.
Обычные люди утверждают, что повторяющийся избыточный код является «автоматическим» или «последовательным» и, следовательно, не способствует сложности кода. Часто, когда язык заставляет разработчиков создавать шаблон, индустрия создает IDE и другие костыли для автоматизации процесса. Затем, когда очевидная стоимость производства этого стандартного кода приближается к нулю, люди думают, что это ничего не стоит.
Они не правы: код Boilerplate вносит свой вклад в объем кода, и любой, кто обслуживает код, должен копаться в нерелевантном коде, чтобы добраться до важных частей. Кроме того, поскольку автоматически сгенерированный код можно и часто редактировать, он может скрывать ошибки, вызванные опечатками, неполным переименованием или другими происшествиями. Стоимость стандартного кода заключается не в его создании, а в его обслуживании, которое многие проекты пытаются полностью игнорировать.
В 80-х годах я видел торговые магии, намазанные рекламой отладчиков утечки памяти для C ++, и для меня это был очевидный признак того, что управление памятью в C ++ серьезно нарушено. Теперь, в окрестностях Java и C #, я вижу увеличение числа помощников по генерации кода, и это указывает на то, что у этих языков есть проблемы, которые лучше решать в других местах.
У Scala есть свои проблемы, но мне нравится то, что они сделали со свойствами и автоматически инициализирующими конструкторами.