Здравствуйте, Left2, Вы писали:
L>Далее. Ещё одно преимущество статической типизацией перед динамической — это выявление существенного количества ошибок на этапе компиляции в противовес оному в run-time. Мне кажется что процент ошибок который можно выявить в compile-time за счёт статической типизации — не так уж высок (ну, или по крайней мере — часто переоценивается).
Дело не в проценте, а в том, насколько эти ошибки оказываются замаскированными. Порой они могут проявить себя в совсем уж редких сценариях. Правда, на статическом языке тоже можно допустить такие ошибки, но это уже как правило ошибка дизайна, а не ошибка по невнимательности. А на динамике можно по невнимательности получить такую трудновылавливаемую ошибку.
L> Особенно это коснётся JavaScript — ведь его динамическая "сущность" никуда не денется — люди так же будут пихать указатели на функции без всякой их типизации как параметры других функций — уж очень это удобно в JS
А что мешает пихать в качестве параметров
типизированные функции.
Товарищ anonymous совершенно правильно сказал про большие проекты. В том то и вкусность динамики — она позволяет с наименьшими затратами написать небольшой скрипт. Там же, где пишется большой проект, лучше пожертвовать компактностью и скоростью ради того, чтобы потом не тратить в несколько раз больше времени на отладку.
Насчёт языка с многими "уровнями" — ничего страшного в этом нет. Лишь бы дизайн языка при этом оказался последовательным. Вот есть языки (не буду называть) которые с одним механизмом типизации из-за непродуманности превратились в фичепомойки где стройностью и последовательностью даже не пахнет.
... << RSDN@Home 1.2.0 alpha rev. 672>>