2011-09-04 47 views
12

我将建立一个系统使用Erlang(我的问题是可以解决的多CPU更好),我有脱脂通过:构建商业系统:纯Erlang还是Erlang/OTP?

  1. 了解你一些二郎;
  2. 二郎/ OTP在行动
  3. 编程二郎(阿姆斯特朗);
  4. Erlang编程(Cesarini)。

的二郎山/ OTP在行动书(2)说:” ......写非OTP Erlang的代码确实是一个高级的主题,以及东西应该当你真的真的要只这样做也许。从来没有做过非OTP的方式是一种福气,因为你会立即采取正确的习惯OTP的事情......“

(2)坚持商业系统应该只用OTP来构建,而(4)轻微地表明,OTP不是唯一的方法来做到这一点。另外,通过阅读(4),我发现从Erlang非常基础的知识构建知识有助于理解OTP如何工作(但不是以相反的方式)。

所以,问题是: 我应该选择Erlang/OTP来构建一个商业系统还是可以用纯Erlang来完成?

回答

34

可以用纯Erlang来完成吗?

是的,它可以,受Greenspun's Tenth Rule模拟:您的系统将包含一个特设非正式指定的,充满错误的,执行慢OTP的一半。

35

学习和玩纯Erlang。

在Erlang/OTP中构建系统。

+2

说得好,Mazen。 – RichardC

13

OTP是用Erlang编写的,所以它绝对是可以在纯Erlang中完成。这就是说,OTP为您提供了许多有用的功能,您可能需要自己编写这些功能。 @Alexey是正确的,你将最终实现OTP的一部分。问题在于,您构建OTP提供的容错系统所需的框架本身必须是非常容易无故障。

我也会回应@Mazen,在纯Erlang中进行实验时,您会很好地感受OTP内部正在发生的事情以及如何在Erlang中构建容错系统。事后你会更好地使用OTP。您将更好地了解何时不是使用OTP,以及为什么。

2

如果你通读“Learn You Erlang”(就像你说的那样),你会注意到作者花费Designing a Concurrent Application章建立了一些在“简单的Erlang”中有用的东西。然后在接下来的两章中,他基本抛弃它,并且使用OTP来实现同样的事情,代码少得多(另外因为它是OTP代码,所以它是标准的 - 所以其他熟悉OTP的开发人员将会拥有它一个更好的想法在哪里看明白!)

检察官办公室已经制定和完善了千年的很多(根据维基百科的初始版本1998)有大量的开发人员,以及大型国际公司(爱立信)的支持下,和同行评审为它都是开源的。我认为假设你可以单处理地构建同样健壮和可扩展的东西,这会有点大胆!

所以使用OTP。即使是“玩”项目,仍然使用OTP,因为它只能帮助你学会更好地使你的“商业”代码:)