akka与Erlang相比如何?

我最近一直在关注akka,这令人印象深刻。看起来它具有erlang的大部分杀手级功能 - 位置透明度,监督层次结构等等。有没有任何功能erlang有akka没有?     
已邀请:
免责声明:我是Akka的PO Erlang使用copy-on-send - Akka使用 共享内存(不可变对象) in-VM发送 Erlang执行每个进程GC - Akka使用JVM GC Erlang有OTP - Akka与整个Java生态系统集成(Apache Camel,JAX-RS, 等等) Erlang完成了这个过程 为您安排 - Akka允许您 使用许多不同的调度员 无尽的配置 机会 Erlang做热门代码 重装 - 阿卡可以支持它,但是 由于JVM,它的灵活性较低 类加载 那些是我头脑中的那些。 另一方面,使用Akka意味着您可以使用Scala,Java,Groovy或JRuby来编写应用程序。     
在Erlang过程中,保证大约每1000次减少一次。在这样一个天真的框架中,Scala / Akka代理拥有一个调度程序,直到它完成接收工作。将军。游戏结束。 Hasta la vista :)人们,不要在伪技术上浪费你的时间。我震惊的是,这里的人比较Scala和Erlang。 还有许多其他所谓的“杀手特征”,但这里是我的建议,不要在功能方面思考,考虑能够使特定语言的习语。 Scala窃取“最佳功能”,Erlang使用正确的习惯用来实现您可靠地构建系统,使用高级语言来驱动这些正确的习惯用法。当您学习Erlang时,您正在重建自己的思维,思考分布式可靠系统的方式,Erlang会教您并升级您。 Scala只是另一种命令(哦,抱歉,多范式,有趣的词)语言试图从其他语言中窃取好的功能。     
几乎没有人提到过程隔离。如果没有“你的线程不能搞乱我的垃圾”的保证,分布式系统就更难以推理了。 (对于Erlang的流程,他们已经足够困难了。) AFAIK(由于我对JVM的直接经验有限,并不是很远),只有Erlang实际上在JVM上获得了“正确”的进程隔离。谷歌先生可以提供一些关于Fox和Candea(?)在使用“微重启”技术(“恢复导向计算”)的研究系统上的研究结果的一些提示。一位Erlang开发人员阅读了该研究并说了几件事: 欢迎来到俱乐部,你花了这么长时间? 尽管如此,JVM非常难以加入。 :-)     
对我来说,热代码交换整个Erlang集群而不停机(例如:
make:all([netload]
)是Erlang杀手功能之一。 但是让我们改回你的问题:akka对Erlang没有什么影响? 当然,您可以向Java添加许多扩展和库(scala,akka,spring,osgi,...)以尝试接近Erlang。但重点在哪里?总而言之,所有这些扩展都比学习20多年来已经证明的简单Erlang语言复杂得多,它可以提供最佳可扩展性,零停机时间。     
对于更大的分布式系统,Erlang可能更好(遵循vjache的答案)但是对于普通服务器而言,当您只想使用多CPU的全部功能时,Akka是不错的选择 - 提供良好的抽象,性能和与Java生态系统的集成。     

要回复问题请先登录注册