Илья Ермаков писал(а):
(Занятны ниже дифирамбы Руби-и-рельсам... Особенно после других отзывов, которые слышны от людей. Это только укрепляет подозрение, что у "всяких Смоллтоков" действительно всё красиво до того момента, пока не попадётся задача с долгоживущим и сильноизменчивым проектом. А если из раза в раз возводится типовое, сдаётся и забывается, то все и правда могут быть счастливы. Я каждый раз при реинжиниринге какой-нибудь своей системы в ужасе представляю, что творилось бы на языке без статической типизации и проч.)
(если пойдёт обсуждение, отделим тему)
Тему можно и отделить.
Мне кажется что ужас-ужас при рефакторинге начинается не из за наличия или отсутствия статической типизации, мне кажется что есть некий более общий критерий -- число инвариантов в коде выразимые на языке программирования. Не важно как это выражется. Возможно даже не важно какие это именно инварианты. Важно, что если число, точнее концентрация, инвариантов падает ниже некого критического уровня, то код менять становится банально страшно.
Пример: erlang. Типизация динамическая. Проекты большие. Рефакторятся успешно БЕЗ покрытия сплошняком тестами. Потому что задача бьется на мелкие изолированные кусочки, потому что язык функциональный. Данные иммутабельны.
В этом плане python, javascript (сейчас пошла мода писать на нем серверные решения) и проч. меня банально пугают.