08.07.08, 08:54, "Walery Studennikov" <despairr@gmail.com>:

> 8 июля 2008 г. 5:13 пользователь Alex Kapranoff <alex@kapranoff.ru> написал:
> На мой взгляд острая потребность в применении "паттернов" возникает
> только в строго-типизированных языках.

Ну вообще "паттерны" это широкое понятие. Особенно если вспомнить что "ноги" паттернов GoF растут из паттернов архитектурных(!).
В perl тоже есть свои паттерны. По сути я бы определил паттерн, как название/имя для какого-то архитектурного, т.е. достаточно высокоуровнего программного решения.
Поэтому не обязательно ограничиваться GoF-ом, у perl-коммьюнити может быть свой набор паттернов. Можно эить и без них, но новичкам с их наличием гораздо легче обучаться.
Поэтому корпорации и вливают бабло в написание книжек по паттернам, рефакторингу и т.п. В этом плане Java-истам повезло. (Правда это провоцирует появление среди них "архитектурных астронавтов" :)

> Для того, что в динамических языках решается "одной строчкой"
> (поскольку нет никаких ограничений
> на фактически любые, не мыслимые в "традиционных" языках извороты и операции),
> в строго-типизированных языках приходится громоздить целые иерархии
> хитро увязанных
> друг с другом классов.

Ну раз так, то можно было бы рассмотреть GoF паттерны и показать (мне показать, например :) как это можно оформить "одной строчкой". Я скоро запощу в рассылку письмо с примерами двух GoF паттернов на Perl. Жду комментариев!

> Т.е. мой личный опыт чтения литературы по паттернам вызвал стойкое
> ощущение, что паттерны --
> это "костыль" для преодоления ограничений строгих языков.

Такое ощущение, наверное, тоже отчасти верное. Но паттернами активно пользуются и php-исты и питонеры, а у них вроде тоже типизация не очень строгая :)

> Мы ("перловики") можем, например, легко и непринуждённо вызвать любой
> метод любого объекта
> по его имени, создать экземпляр класса, имя которого неизвестно
> заранее, причём не обязательна
> его принадлежность к какой-то определённой иерархии, создать любые
> функции, классы,методы,
> пакеты "на лету" и т. п. Фактически "можно делать всё".
> Т. е. мы имеем возможность "разрубить" любой "гордиев узел", вместо
> того, чтобы долго и кропотливо его развязывать.
> Главное при этом "не прострелить себе ногу" ;)

Я тоже так считаю. "Рубить" надо умеючи! :)