Модель Actor, якою користується Ерланг, виглядає зовсім іншим способом одночасного програмування. Які ваші думки щодо акторської моделі? Чи буде це популярним рішенням для одночасності?
Модель Actor, якою користується Ерланг, виглядає зовсім іншим способом одночасного програмування. Які ваші думки щодо акторської моделі? Чи буде це популярним рішенням для одночасності?
Відповіді:
Я припускаю, що ви знаєте цю концепцію. Ну, я ще не дуже добре знаю.
Коротка відповідь полягає в тому, що я вірю в популярність цієї моделі для одночасності у коротко- та середньостроковій перспективі. Я завжди любив лямбда і закриття, і бачу актора, як закриття, спеціально оброблені для одночасності влади. Таким чином, багатоядерні процесори приносять нам нову парадигму програмування, паралельність є обов'язковою для досягнення високої продуктивності. Модель актора здається легким шляхом використання сучасного обладнання.
Рано чи пізно (я сподіваюсь, що раніше) майже кожна основна мова підтримуватиме кращу модель для одночасності. Модель IMHO Actor, так добре реалізована в Ерланге, повинна стати найкращим кандидатом.
Однією перешкодою для набуття популярності моделі "Актор" є невеликий імпеданс щодо OOP, домінуючої парадигми зараз. Але перший крок дається, основні мови реалізують деякі функціональні функції, які очистять шлях до моделі Actor.
Я багато читаю про це питання, думаю, що кожному програмісту заздалегідь важливо його вміння.
Пізнє редагування:
Тепер я краще розумію парадигму. Тож я можу сказати, що краще мовою програмування дозволяти дозволяти вирішувати проблему бібліотеками, або в кінцевому підсумку є особливість полегшити прийняття однієї моделі. Зв'язати мову лише з однією моделлю не бачить гарної ідеї.
"Популярне" - не дуже важливий показник. "Корисний" або "потужний" є.
Модель "Актора" існує вже близько 35 років, принаймні в академічних закладах, і її впроваджують все більше і більше мов реального світу з часом. (Гаразд, Ерланг не прийняв модель "Актора", він переробив модель "Актор".)
Тож, враховуючи, що він пережив кілька десятиліть у наукових колах, і він переходить у мейнстрім, я б сказав, що це буде довгий час.
Чесно кажучи, я вважаю, що це найкращий спосіб зробити одночасність. Спільна пам'ять із моделлю замків мене лякає, я просто бачу занадто багато способів, коли це може піти не так. Актори з передачею повідомлень здаються набагато більш чистим способом робити справи.
Також подивіться на STM, який можна використовувати в Clojure та Haskell, і, мабуть, на кількох інших мовах.