Михаил писал(а):
Вообщем, я запутался. Протоколы, параметрический полиморфизм !!!
я про это и говорил: для начинающих недостаточно разжёвано, для «продолжающих» бесполезно. как, впрочем, и большинство выступлений на большинстве конференций: словоблудие, да трата времени. те, кто туда выпить за казённые деньги ездят — с ними всё понятно; а зачем остальные на это финансы и время тратят — не ясно вообще.
объект определятеся не классом или иерархией: объект определяется набором сообщений, на которые он умеет реагировать определённым образом. это называется «протокол». очень грубо и неправильно протокол можно представить как набор методов базового класса, который обязаны реализовывать все наследники. а теперь убираем из картинки иерархию, и заменяем методы на сообщения.
один объект может реализовывать несколько протоколов, никаких проблем. поскольку в жёсткую типизацию это никак не засовывается, придумали хак: интерфейсы. сначала множественное наследование, потом правильно испугались и сделали интерфейсы. костыль и костыль. в Self вместо этого сделали трейты (traits).
про типы полиморфизма читайте сами, там ничего сложного. если опять очень грубо и не очень верно, то параметрический — это когда просто посылают сообщения, а диспетчер автоматически выбирает обработчик по параметрам сообщения. ad-hoc — это когда мы в коде своими ручками выбираем. ООП принесло параметрический, все в восторге прыгали и кидались чепчиками.
Михаил писал(а):
учится мне нравилось
мне тоже учиться нравится. но индивидуально, потому что групповое обучение во-первых, ограничено правилом конвоя, а во-вторых, обычно включает в себя вещи, которые мне совершенно неинтересны (сейчас или вообще).
p.s.: а в целом — все эти умности вам нахрен не нужны, практической пользы в них ноль. ценится умение быстро говнокодить, чтобы TTM (time to market) было минимальным. чем адовей говнокод — тем лучше: тогда вас точно не уволят, потому что никто больше в
этом не разберётся. я вот говнокодить не умею, поэтому голодаю. а не занимался бы фигнёй — галерами бы командовал.