5

我想为嵌入式处理器编写演员风格的代码,我试图在用 Erlang 编写所有内容与用 zeromq+任何语言编写所有内容之间做出决定。从某种意义上说,使用 zeromq 看起来非常强大,因为我可以使用任何编程语言并使我的开发变得更加容易(许多可用的库),但是我不确定这种能力是否有任何陷阱?我知道 Erlang 可以更好地表示演员模型,尤其是使用 OTP 概念,但是用 zeromq 表示类似的演员模型似乎很容易?我看对了吗?

1. 如果不将 Erlang 用于嵌入式应用程序(不需要分布式处理,Erlang 的一个要点),并且只是在 zeromq 等通用消息传递框架之上构建东西,我真的会失去什么?

2. Erlang 为非分布式嵌入式应用程序提供的不仅仅是协调的消息传递框架吗?

3. Erlang 的哪些具体功能可能需要很长时间才能用 zeromq 实现?

4

3 回答 3

4

你在比较苹果和橘子。使用 Erlang 的部分优势在于语言。如果您要将它与 zmq + 其他语言相提并论,那么比较中的其他语言确实很重要。zmq + ARM 组装?Erlang 带来了非手工编码 ASM 的所有美妙优势。

至于 Erlang 还带来了什么,Embedded Erlang?Absolutely认为 Erlang 在容错、热代码加载、利用 Erlang 和 OTP 的快速开发、与 C 库的轻松交互以及通过实时 REPL 和复制粘贴术语进行简单调试等方面具有优势。

其中一些东西,例如热重载、设备上 REPL 和已建立的库,肯定需要一些真正的黑客才能从头开始重现。

于 2012-10-01T19:46:56.087 回答
3

我的观点是,您必须非常努力地在 Zmq 中获得相同类型的错误处理。当事情开始变糟时,Erlang 有一些非常好的内置错误处理。Erlang 花费了大量时间优化该部分并使其健壮。

另一方面,当您进行简单的基准测试时,Zmq 在某些语言的某些组合中可能更快。开销更少,因此它处理消息的速度可能比 Erlang 所能提供的更快。

但很有可能你最终会用你选择的语言重新实现大部分 Erlang。而且你可能不会像在 Erlang/OTP 上工作了 15 年的 6 到 10 名开发人员那样出色。

另一方面,Erlang 不是一门简单易学的语言。除了学习如何以功能风格进行编程之外,还有更多的方法。尤其是并发模式和故障处理可能需要一些时间来适应。

于 2012-10-04T19:59:36.063 回答
1

ZeroMQ =/= Erlang涵盖了许多不同之处。声称 ZeroMQ 只提供消息传递方面,而不提供轻量级流程、流程监控和其他方面。

于 2013-06-14T12:56:57.517 回答