답변:
배우 나 FRP 모두 스트리밍에 관한 것이 아닙니다. 액터는 출력 스트림의 외부 구성도 지원하지 않습니다.
FRP는 선형 타임 라인에서 모델링 신호와 이벤트를 특징으로하며, 이는 FRP 동작이 결정적인 방식으로 구성 될 수 있도록합니다. 액터는 결정적이지 않은 순서로 메시지를 처리하는 것이 특징이며, 구성 속성이 거의 없습니다 (즉, 두 액터의 배열을 더 큰 액터로 취급 할 수 없음).
유사성을 찾고 있다면 배우와 FRP는 람다 미적분과 밀접한 관계가 있습니다. 둘 다 인간 입력에 반응하는 시스템을 모델링 할 수 있습니다. 둘 다 내부 (로컬) 상태 모델링을 지원합니다.
FRP는 적분 또는 누산기를 통해 로컬 상태를 지원하고 (시간에 따라 폴드) 액터 모델은 각 액터가 현재 메시지에 대한 다음 액터의 동작을 지정할 수 있도록하여 상태를 지원합니다. 로컬 상태에 대한 이러한 광범위한 지원은 FRP와 Actor 모두 라이브 프로그래밍 (또는 프로그램 코드의 런타임 업그레이드)에 적합하지 않습니다. 중요한 상태를 잃기가 너무 쉽습니다.
응용 프로그램 도메인과 관련하여 :
액터 모델은 런타임시 액터를 설치하거나 유지하려는 개방 시스템에 매우 적합합니다. 메시지의 비 결정적 순서가 적합한 구현을보다 쉽게 만들 수 있기 때문에 액터 모델은 분산 시스템에도 적합하지 않습니다. (액터가 분산 시스템에 더 적합하지 않은 이유는 메시지가 '한 번에 한 번만 도착하는 것'이 혼란에 직면하기가 매우 어려우며, 액터가 분산 GC를 요구하는 경향이 있기 때문입니다.
FRP는 로봇 컨트롤러, 음악 프로그래밍, 전산 장난감과 같이 시간이 지남에 따라 작동하는 폐쇄 시스템에 매우 적합합니다. 결정론과 구성 적 특징은 FRP가 직접 솔루션을 모델링 할 수있는 경우에 FRP를 배우보다 작업하기에 더 편리하게 만듭니다. FRP를 효과와 통합하는 것은 (예를 들어, 불순물로 모델을 해킹하지 않고) 어려운 것으로 입증되었습니다. 최근에는 웜홀 (wormholes)을 통한 효과적인 FRP (효과적이고 독특하거나 선형적인 유형의 리소스 액세스)에 대한 연구가 진행되었습니다.
FRP와 Actors 사이에 다른 모델이 있습니다.
John Paul Morrison이 개발 한 FBP (Flow Based Programming)는 실제로 메시지 스트리밍을 지원합니다.
타임 워프 프로토콜 (또는 LTW (Lightweight Time Warp)에 대한 최신 연구)은 배우와 같은 메시지를 논리적 인 타임 라인에 배치하여 메시지 전달에 대한보다 통제되고 구성적인 개념을 제공합니다. 타임 워프는 종종 과학 컴퓨팅과 같은 대규모 병렬 및 분산 시스템에 사용됩니다. 원래 타임 워프는 대화 형 시뮬레이션 (인간의 입력에 대한 반응)에 적합하지 않았으며 LTW는 거의 적합하지 않습니다.
개방형 및 분산 시스템에서 신호의 반응 형, 구성 형, FRP 형 조작 및 처리를 가능하게하고 로컬 상태를 제거하는 RDP (Reactive Demand Programming)를 개발 중입니다. RDP는 부작용을 시간이 지남에 따라 신호에 의해 자원 상태에 대한 정류적이고 dem 등한 영향으로 제한함으로써 달성됩니다. RDP는 자원 및 상태 모델을 재고해야합니다.
실제 관점과 어떻게 다른지 지적하고 싶습니다.
1)이 주체가 메시지 전달 명시되고 설명되며, 다른 관계자에게 메시지를 보낼 불가피 .
예를 들면 다음과 같습니다.
send msg to Actor137
.
2) FRP에서 데이터 흐름은 선언적 으로 설명됩니다 .
예를 들면 다음과 같습니다.
Cell134=Cell185+Cell42
.
메시지 전달은 FRP 프레임 워크에 의해 처리되며 한 셀에서 액터로 (액터로, 상태를 캡슐화하여) 행동을 다른 셀로 전달하는 방법을 "수동으로"설명 할 필요가 없습니다.
다른 말로:
기능적 반응 형 프로그래밍의 본질 은 선언시 값의 동적 동작을 완전히 지정 하는 것입니다. 따라서 모든 종속성은 Cell134
선언 지점에서 정의됩니다.
이은 사실이 아니다 액터 모델. 액터의 행동에 영향을 미치는 액터 A
는 액터 A
가 정의 된 소스 코드의 동일한 위치에 정의되어 있지 않습니다 .
최근 두 데이터 스트림이 선언적으로 설명되었지만 액터를 사용하여 구현되는 Akka 스트림 사이에 흥미로운 하이브리드가 있음 을 알았습니다 .
또 다른 차이점은 액터가 비동기 인 반면 FRP는 동기적인 경향이 있습니다 (종종 글리치가 없는 경우).