Re[12]: Что вас останавливает от изучения нового языка?
От: dimgel Россия https://github.com/dimgel
Дата: 23.04.11 17:17
Оценка: 4 (1) -1
Здравствуйте, FR, Вы писали:

FR>Я PHP и JavaScript практически не знаю, но судя по тем же флеймам они гораздо более подвержены ошибкам чем питон и руби ввиду очень слабой типизации.


Является ли сильная типизация по сравнению со слабой преимуществом при автоматическом рефакторинге, если оба языка динамически типизированные? Я склонен считать, что нет, т.к. ошибка типов в любом случае вылетит в рантайме, IDE никакой помощи тут не предоставит. Если так, то это ключевая претензия, и она ни на йоту не гипертрофированная: её значение переоценить невозможно. Как по мне, невозможность быстро и надёжно (без необходимости писать тонну юнит тестов) рефакторить код — это приговор языку. На любом хоть сколько-нибудь крупном проекте рефакторинг будет выливаться в такой геморрой, что проще повеситься. "Отвинтили пупок — отвалилась задница." Всё остальное я перетерплю, но когда рефакторинг кода похож на хождение по минному полю, когда на каждый чих типа переименования метода приходится вручную шерстить весь проект глобальным поиском, потом смотреть, что из найденного относится к нашему классу, а что не относится (а в отсутствие информации о типах приходится анализировать логику, иногда глубоко), а потом молиться, чтобы где-нибудь не упала завязанная на рефлексии динамика, конструирующая имя вызываемого метода так, что он не нашёлся поиском... это ад, в общем. Огромное количество временных затрат на ровном месте. Вот реальная проблема. А что в рантайме я не смогу присвоить числовой переменной строку — мне глубоко пофиг, я уже привык assert-ами по коду разбрасываться, они неплохо компенсируют слабую типизацию.