微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么Scala演员在2.10中弃用?

我只是 comparing个不同的scala actor实现,现在我想知道可能会有什么动机,弃用现有的2.10中的scala actor实现,并用Akka实现替换认的actor? migration guidefirst announcement都没有给出任何解释。

根据比较,这两个解决方案是不同的,保持两者都是一个好处。因此,我想知道现有的实施是否有重大问题导致了这一决定?换句话说,是技术还是政治决定?

解决方法

我不得不给你一个猜测答案:

Akka提供了一个稳定而强大的图书馆,与演员一起工作,以及许多处理高并发性的功能(期货,代理,交易演员,STM,FSM,无阻塞I / O等)。

此外,它以比scala更安全的方式实现actor,因为客户端代码只能访问通用ActorRef。这使得不可能通过消息传递而与演员进行交互。
Roland指出,这也可以通过监督层次结构和位置透明度实现其他功能,例如容错能力:在本地或远程部署演员的能力,客户端代码不需要更改。
整体设计更像Erlang的原始设计。]

许多核心功能在scala和akka演员中重复,所以统一似乎是一个最明智的选择(考虑到两个图书馆的开发团队现在也是同一家公司的一部分:Typesafe)。
主要的收获是避免重复相同的核心功能,这只会造成混乱和兼容性问题。

考虑到选择到期,只能决定哪一个是标准的实现。

对我来说很明显,Akka在这方面有更多的提供,作为一个完整的框架,许多企业级功能已经包括在内,而且在不久的将来会有更多的。

我不能想到一个特定的情况,scala.actors能够完成什么akka不能。

附:类似的推理导致了在2.10中统一了future/promise标准的实施

整个Scala语言和社区必须从简化的界面获得基础语言功能,而不是由不同框架组成的分散场景,每个框架都有自己的语法和模型来学习。

对于其他更高层次的方面来说,对于开发人员从可用解决方案更丰富的全景图获得的网络框架来说也是如此。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐