我想为嵌入式处理器编写actor样式代码,我正在尝试在Erlang中编写所有内容与在zeromq +任何语言中编写所有内容之间做出决定。使用zeromq看起来非常强大,因为我可以使用任何编程语言并使我的开发更容易(许多可用的库)但是我不确定这个功能是否有任何问题?我知道Erlang代表演员模型要特别好用OTP概念,但是用zeromq代表类似的演员模型似乎很容易?我正确地看着这个吗?
1.如果不使用Erlang进行嵌入式应用程序(其中不需要分布式处理,Erlang的强大功能),并且只是在zeromq之类的通用消息传递框架上构建东西,我真的失去了什么?
2. Erlang是否为非分布式嵌入式应用程序提供的不仅仅是协调的消息传递框架?
3.使用zeromq实现Erlang的哪些特定功能可能需要很长时间?
答案 0 :(得分:3)
你在比较苹果和橘子。使用Erlang 的部分优势是语言;如果你要反对zmq +其他语言,那么比较中的另一种语言真的很重要。 zmq + ARM组装? Erlang带来了非手动编码ASM的所有优点。
至于Erlang为表带来了什么,Embedded Erlang? Absolutely认为Erlang在容错,热代码加载,利用Erlang和OTP的快速开发,与C库的简单交互以及现场简单调试方面具有优势REPL和复制粘贴术语。
其中一些内容,例如热重载,设备上的REPL和已建立的库,肯定会从头开始重现。
答案 1 :(得分:3)
我的观点是,你必须非常努力地在Zmq中获得相同类型的错误处理。当事情开始恶化时,Erlang有一些非常好的内置错误处理。在Erlang中花费了大量时间来优化该部分并使其稳健。
另一方面,当您制作简单的基准测试时,Zmq在某些语言的某些组合中可能更快。开销较少,因此它可以比Erlang提供的更快地处理消息。但有可能你最终会用你选择的语言重新实现Erlang的大部分内容。你可能不会做6到10年开发Erlang / OTP开发人员15年的工作。
另一方面,Erlang不是一门学习的简单语言。除了学习如何以功能风格编程之外,还有更多的方法。特别是并发模式和故障处理可能需要一段时间才能适应。
答案 2 :(得分:1)
ZeroMQ =/= Erlang涵盖了许多不同之处。声称ZeroMQ仅提供消息传递方面,而不是轻量级流程,流程监控和其他方面。