Глянул что нового в Moo появилось: оказывается MOP там тоже есть, правда средствами class::mop. Аксессоры генерятся через class::xsaccessor, если он доступен. Ну а библиотека типов (MooseX::Types?) это круто конечно, только мы же про Перл говорим. А в контексте перла никакая библиотека типов не запретит заткнуть круглое квадратным. Поэтому считаю Moo крайне практичным инструментом.<div>
<br></div><div>От себя еще пожелание к докладчикам: может про MOP кто-нибудь расскажет, где на практике получить от него выигрышь?<br><br>вторник, 18 марта 2014 г. пользователь Ilya Chesnokov  написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
18 марта 2014 г., 21:24 пользователь Андрей П. Ковбович<br>
<<a href="javascript:;" onclick="_e(event, 'cvml', 'akovbovich@gmail.com')">akovbovich@gmail.com</a>> написал:<br>
> Почему не use Moo? Если нет зависимостей от moose, то вполне себе отличная<br>
> альтернатива для ОО.<br>
<br>
Потому что в Moo нет вообще ни черта - ни библиотеки типов, ни MOP :)<br>
Только аксессоры + роли - впрочем, поэтому он и достаточно легковесный.<br>
Плюс его аксессоры медленнее, чем XS-ный Mouse (не смог найти запись<br>
того доклада с YAPC, про который говорил выше - но насколько помню,<br>
XS-решения, и в частности Mouse, рвали всех на бенчмарках).<br>
<br>
К счастью, есть еще такой проект как mop, который, возможно, окажется<br>
в ядре через пару лет: <a href="https://github.com/stevan/p5-mop-redux" target="_blank">https://github.com/stevan/p5-mop-redux</a>.<br>
Тогда все, начинающееся на Mo* можно будет переписывать )<br>
<br>
Кстати, довольно забавно - появился Moose для Ruby:<br>
<a href="https://github.com/peczenyj/MooseX" target="_blank">https://github.com/peczenyj/MooseX</a><br>
--<br>
Best regards,<br>
Ilya Chesnokov<br>
--<br>
Moscow.pm mailing list<br>
<a href="javascript:;" onclick="_e(event, 'cvml', 'moscow-pm@pm.org')">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</blockquote></div>