2012-10-01 36 views
5

我想为嵌入式处理器编写actor风格代码,并且试图在所有使用erlang编写所有代码之前做出决定。使用zeromq看起来非常强大,因为我可以使用任何编程语言并使我的开发变得容易很多(很多可用的库),但是我不确定这个功能是否有问题?我明白Erlang代表演员模型比OTP概念更好,但是用zeromq代表类似的演员模型似乎很容易?我正确看着这个吗?嵌入式应用程序中的“Erlang”与“zeromq +任何语言”

1.我真的失去了在嵌入式应用程序中不使用Erlang(不需要分布式处理,Erlang的强大功能点),而只是在zeromq之类的通用消息框架上构建一些东西?

2.是否Erlang为非分布式嵌入式应用程序提供协调消息框架?

3. Erlang的哪些特定功能可能花费太长的时间用zeromq实现?

回答

3

你在比较苹果和橘子。部分使用Erlang的优势的语言;如果你打算把它与zmq +一些其他语言相提并论,那么比较中的另一种语言真的很重要。 zmq + ARM程序集? Erlang带来了所有非手写ASM的优点。关于Erlang带来的其他功能,Embedded Erlang? Absolutely认为Erlang在容错,热代码加载,利用Erlang和OTP进行快速开发,与C库轻松交互,以及通过实时REPL和复制进行简单调试等方面具有优势,Embedded Erlang? Absolutely - 术语的粘贴。

其中的一些东西,比如热重载,设备上REPL以及已建立的库,肯定会采取一些真正的黑客从头开始重现。

3

我的观点是,你将不得不努力工作才能在Zmq中获得相同类型的错误处理。当事情开始变糟时,Erlang有一些非常好的内置错误处理。 Erlang已经花费了相当多的时间来优化这个部分并使其更加健壮。

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

但是很可能你会用你选择的语言来重新实现大部分的Erlang。而且你可能不会像从事Erlang/OTP工作15年的6-10位开发人员那样工作。

另一方面,Erlang不是一个简单的语言学习。除了学习如何以功能性风格进行编程之外,还有更多的事情要做。特别是并发模式和失败处理可能需要一些时间才能习惯。

0

ZeroMQ =/= Erlang涵盖许多差异。 ZeroMQ只提供消息方面的内容,而不是轻量级流程,流程监控和其他方面。

相关问题