Здравствуйте, stalcer, Вы писали:
S>Здравствуйте, Gaperton, Вы писали:
G>>Второе (менее очевидное) — динамически типизированный язык в качестве языка бизнес логики дает больше свободы при разработке объектной модели. S>Какие-же преимущества он дает? Возможность использование системы менее квалифицированными программистами?
Динамическая типизация заметно упрощает дизайн, что, с одной стороны, снижает требования к квалификации программиста, с другой, освобождает квалифицированного от размышлений, не связанных на прямую с прикладной областью. На каких-то задачах это более заметно, на каких-то не заметно вовсе — примеры привести сложно.
Если посмотреть внимательно, то вы заметите, что в строго типизированных языках наследование применяется в частности и для того, чтобы обеспечить некоторые свойства динамической типизации. Конкретнее, речь идет о полиморфных переменных, которые могут хранить значения разных типов (эти типы должны быть увязаны в иерархию наследования, и иметь общего предка), и полиморфных вызовах функций (которые аргументом принимают полиморфные переменные). Объект, для которого вызывается метод, также является его (неявным) аргументом.
При этом, разрабатывая объектную модель для строго типизированного языка вы думаете не только о прикладном смысле классов, но также вынуждены думать о том, как организовать полиморфизм. В случае динамически типизированных языков вы об этом не думаете.