LINUX.ORG.RU

Actor model не взлетела. Причины

 ,


3

5

Why has the actor model not succeeded?

Уже не одно десятилетие прошло с момента появления модели акторов. Такая стройная теоретическая модель должна была вытеснить мютексы, условные переменные и прочие примитивы для синхронизации shared state.

Вкратце, причины неуспеха модели акторов из статьи:
1) Акторы не имеют прямой связи с моделью ООП.
2) Поведение динамическое, зачастую трудно предсказуемое и проблемы появляются в run-time. Что еще усугубляется возможностью актора создавать других акторов.
4) Требования по памяти обычно не могут быть определены до запуска.
5) Идея асинхронного обмена сообщениями затрудняет реализацию некоторых алгоритмов.
6) Сложность в реализации протокола последовательного взаимодействия между акторами.

По-моему, всё давно взлетело. То что оно не идеально не значит что не используется.

true_admin
()

Вы задолбали актёров называть акторами. Называйте или актёрами или уж тогда «экторами» (англ. произношение), а лучше «actors».

Не надо портить и пачкать языки, ни английский, ни русский.

P.S. По теме: вполне себе используются, хотя, конечно, рынок не заполонили на 146% пока что. Есть достоинства, есть и недостатки.

BattleCoder
()
Последнее исправление: BattleCoder (всего исправлений: 1)

Кстати, про модель ООП хорошая статейка http://habrahabr.ru/post/147927/ (прошу прощения за ссылку на швабр). Мнение того чувака разделяю.

Так что не вижу в первом пункте недостаток.

А ещё я вижу параллель actor model c моделью конечных автоматов... По крайней мере в scala-реализации очень удобно можно задавать состояния, и в зависимости от состояний реагировать на события. По-моему не хуже ООП описывает «объекты внешнего мира», или «прикладную область».

Контраргументы приветствуются, интересно послушать гуру.

BattleCoder
()

Причина та же самая, почему лисп, смолток, отчасти перл здохли. Предоставление свободы отдельным личностям не соответствует интересам корпоративного бизнеса. Динамика противоречит простоте компиляции. В энтерпрайзе не нужны Инженеры, там нужны белые воротнички, без проблем, без воли, без идей. Разделение труда.

anonimous
()

Акторы не имеют прямой связи с моделью ООП.

Поправочка: класс-ооп. Смолтоковскому ООП, как раз соответствуют, и, более того, смолток непосредственно повлиял на рождение теории акторов.

Идея асинхронного обмена сообщениями затрудняет реализацию некоторых алгоритмов.

Поправочка: быдло-алгоритмов.

anonimous
()
Ответ на: комментарий от ymn

вполне себе взлетела и используется в некоторых языках.

Только в двух. И не составляет основу.

anonimous
()
Ответ на: комментарий от anonimous

Потому, что программирование - это не рисование, епт, а прикладная логика. Софт бы резко прибавил в качестве, если бы все скудоумные творцы вместо программирования занялись бы тем, что им под силу, мытьем полов, например.

anonymous
()
Ответ на: комментарий от anonymous

Проблема как раз в том, что те, кто не годится даже для мытья полов, сегодня сидят за компами, каждый по своему, правда, один буковы в ворде печатает, другой проги, но разница небольшая, каждого свой «Ынтерфейс пользователя», у одного - word, у другого ++. Но это не имеет отношения к программированию и инженерной дисциплине.

anonimous
()
Ответ на: комментарий от BattleCoder

Вы задолбали актёров называть акторами. Называйте или актёрами или уж тогда «экторами» (англ. произношение), а лучше «actors».

Ага, а ещё «лицедеями» можно обозвать, да. :)

sleepflint
()
Ответ на: комментарий от swwwfactory

Истории успеха из реальной жизни приветствуются, если что :)
По вопросу actor model я точно не ихсперт - в реале ни разу не использовал

nerdogeek
() автор топика
Ответ на: комментарий от nerdogeek

ни разу не использовал

Ты использовал, только не знаешь об этом. Любая модель вычислений (МТ, LC etc) является частным случаем сабжа.

anonimous
()
Ответ на: комментарий от nerdogeek

Истории успеха из реальной жизни приветствуются, если что :)

По вопросу actor model я точно не ихсперт - в реале ни разу не использовал

...лучше модели не бывает, когда все в движении, иначе один не-асинхронный блок остановит всю систему. Но не все из акторов а только асинхронность и окружение в основном.

История успеха:

эрланг: send/receive, gen_server, gen_fsm, gen_tcp/udp, реализация процессов...

javascript в общем в некотором смысле

swwwfactory
()
Последнее исправление: swwwfactory (всего исправлений: 1)
Ответ на: комментарий от swwwfactory

javascript в общем в некотором смысле

Его прототипы. Почти в прямом смысле, ИМХО.

anonimous
()
Ответ на: комментарий от nerdogeek

На самом деле, стоит указать что ты называешь моделью акторов.

По мне так даже шеловский пайплайн сюда попадает. Да что там, любое клиент-серверное приложение можно рассматривать под таким углом.

true_admin
()
Ответ на: комментарий от heilkitty

Каюсь. По профессиональной деятельностью чаще приходится общаться с жителями USA, чем UK. Возможно, это влияет на моё произношение.

То есть, возможно, оба варианта правильны. Языки так быстро меняются, что я уж не знаю, что и думать.

BattleCoder
()
Ответ на: комментарий от BattleCoder

Возможно, это влияет на моё произношение.

Наверняка, и на сознание. Маршируешь, небось? (Во имя «мира», всесте с Макаревичем.)

anonymous
()
Ответ на: комментарий от BattleCoder

Truck full of fail

«экторами» (англ. произношение)

/ˈæk.tə/

Называйте или актёрами

From Latin āctor (“doer”), from agere (“to do”). Cognate with Ancient Greek ἄκτωρ (aktōr, “leader”), from ἄγω (agō, “lead, carry, convey, bring”).

actor (plural actors) A person who performs in a theatrical play or film. One who acts; a doer. One who takes part in a situation. (law) An advocate or proctor in civil courts or causes. (law) One who institutes a suit; plaintiff or complainant. (policy debate) One who enacts a certain policy action. (software engineering) The entity that performs a role (in use case analysis).

Актёр (фр. acteur, от лат. actor — исполнитель) — исполнитель ролей в спектаклях и кино.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.