blu*_*e10 21 scala actor akka scala-2.10
我只是在比较不同的scala actor实现,现在我想知道在2.10中弃用现有scala actor实现并用Akka实现替换默认actor的动机是什么?迁移指南和第一个公告都没有给出任何解释.
根据比较,两种解决方案的不同之处在于保持两种解决方案都是有益的.因此,我想知道导致这一决定的现有实施是否存在任何重大问题?换句话说,这是技术还是政治决定?
pag*_*_5b 21
我不得不给你一个猜测答案:
Akka提供了一个稳定而强大的库来与Actors一起工作,以及许多处理高并发性的功能(期货,代理,事务参与者,STM,FSM,非阻塞I/O,......).
此外,它以比scala更安全的方式实现actor,因为客户端代码只能访问泛型ActorRef.这使得除了通过消息传递之外不可能与演员交互.
[ 编辑: 正如Roland所指出的,这还通过监督层次结构和位置透明度实现了容错等附加功能:能够在本地或远程部署actor,而无需对客户端代码进行任何更改.
整体设计更像是erlang中的原始设计.]
许多核心功能在scala和akka演员中都是重复的,因此统一似乎是最明智的选择(假设两个图书馆的开发团队现在也是同一家公司的一部分:Typesafe).
主要收获是避免重复相同的核心功能,这只会产生混淆和兼容性问题.
鉴于选择到期,只能决定哪个是标准实现.
对我来说很明显,Akka在这方面可以提供更多功能,它是一个功能齐全的框架,已经包含许多企业级功能,并且在不久的将来会有更多功能.
我想不出scala.actors能够完成akka无法实现的特定情况.
ps类似的推理导致了2.10中标准未来/承诺实施的统一
整个scala语言和社区必须从简化的基本语言功能接口中获益,而不是由不同框架组成的碎片化场景,每个框架都有自己的语法和模型来学习.
对于其他更高级别的方面,例如网络框架,开发人员可以从更丰富的可用解决方案中获益,这一点也不能说.
| 归档时间: |
|
| 查看次数: |
4377 次 |
| 最近记录: |