Erlang 이 사용하는 액터 모델 은 동시 프로그래밍을 수행하는 매우 다른 방법 인 것 같습니다. 액터 모델에 대한 당신의 생각은 무엇입니까? 동시성에 널리 사용되는 솔루션입니까?
답변
나는 당신이 개념을 알고 있다고 가정합니다. 글쎄, 나는 아직 잘 모른다.
짧은 대답은이 모델의 인기가 단기 및 중기 적으로 동시성이라는 것입니다. 나는 항상 람다와 클로저를 좋아했으며 클로저와 같은 배우가 동시 처리를 위해 특별히 처리 된 것을 봅니다. 따라서 멀티 코어 프로세서는 프로그래밍의 새로운 패러다임을 가져 오며 동시성은 고성능을 달성해야합니다. 액터 모델은 최신 하드웨어를 쉽게 이용할 수있는 경로로 보입니다.
거의 모든 주류 언어는 조만간 더 나은 동시성 모델을 지원할 것입니다. Erlang에서 잘 구현 된 IMHO Actor 모델이 최고의 후보가되어야합니다.
액터 모델의 인기를 얻는 데 방해가되는 요소 중 하나는 현재 지배적 인 패러다임 인 OOP의 작은 임피던스입니다. 그러나 첫 번째 단계는 기본 언어가 액터 모델로가는 길을 깨끗이하는 기능적 기능을 구현하는 것입니다.
이 문제에 대해 많이 읽고 있습니다. 모든 프로그래머가 자신의 기술을 발전시키는 데 매우 중요하다고 생각합니다.
늦은 편집 :
이제 나는 패러다임을 더 잘 이해합니다. 따라서 프로그래밍 언어가 라이브러리에 의해 문제를 처리하거나 하나의 모델을 쉽게 채택 할 수있는 기능을 허용하는 것이 좋습니다. 하나의 모델로 언어를 묶는 것은 좋은 이데아를 보지 못합니다.
답변
“인기”는 굉장히 중요한 척도가 아닙니다. “유용한”또는 “강력한”입니다.
액터 모델은 현재 적어도 학계에서 약 35 년 동안 존재 해 왔으며 시간이 지남에 따라 점점 더 많은 실제 언어로 채택되었습니다. (알랑은 액터 모델을 채택 하지 않고 액터 모델을 재창조 했습니다.)
그래서 그것이 수십 년 동안 학계에서 살아 남았고 주류로 옮겨 가고 있다고 가정하면, 나는 그것이 잠시 동안 주변에있을 것이라고 말하고 싶습니다.
답변
솔직히 이것이 동시성을 수행하는 가장 좋은 방법이라고 생각합니다. 잠금 모델이있는 공유 메모리는 나를 두려워합니다. 잘못되는 너무 많은 방법을 볼 수 있습니다. 메시지 전달 기능이있는 액터는 일을 훨씬 더 깔끔하게하는 것처럼 보입니다.
Clojure와 Haskell 및 다른 언어로 사용될 수있는 STM도 살펴보십시오.