构建商业系统:纯Erlang还是Erlang/OTP?

12

我即将使用Erlang来建立一个系统(我的问题可以通过多个CPU更好地解决),我已经浏览了以下内容:

  1. 学习Erlang;
  2. Erlang/OTP实战
  3. 编程Erlang(Armstrong);
  4. Erlang编程(Cesarini)。

Erlang/OTP实战书(2)指出:“……编写非OTP Erlang代码确实是一个高级话题,应该只在您确实需要时才这样做。因此,也许从未以非OTP方式进行过的人是一种祝福,因为您可以直接掌握有关OTP事项的正确习惯……”

(2)坚持认为商业系统应该仅使用OTP构建,而(4)则温和地表明OTP并不是唯一的方法。

此外,通过阅读(4),我发现从Erlang的基础知识开始建立知识有助于理解OTP的工作原理(但反之则不行)。

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

4个回答

35

学习并使用纯Erlang语言。

在Erlang/OTP中构建系统。


34

可以使用纯Erlang完成吗?

是的,可以,但需要遵守格林斯潘第十条规则的类比:您的系统将包含一个特定场景、非正式指定、错误率高、速度慢的OTP一半实现。


13

OTP使用Erlang编写,因此它肯定可以在纯Erlang中完成。话虽如此,OTP提供了许多有用的功能,否则您将需要自己编写。@Alexey是正确的,你最终将实现OTP的一部分。问题在于构建容错系统所需的框架(OTP提供)本身必须非常无故障。

我也会像@Mazen一样重申,在纯Erlang中进行尝试可以让您更好地了解OTP内部的情况以及如何在Erlang中构建容错系统。然后您将更好地利用OTP。您将更好地理解何时不应使用OTP以及原因。


3
如果你已经阅读过《学习Erlang》(就像你说的那样),你会注意到作者在设计并发应用程序章节中使用“普通Erlang”构建了一些半有用的东西。然后在接下来的两章中,他基本上抛弃了它,并使用OTP以更少的代码实现了相同的功能(此外,由于它是OTP代码,因此熟悉OTP的其他开发人员将更好地了解它!)
OTP已经发展和完善了很多年(根据维基百科的说法,最初发布于1998年),有大量的开发人员支持,以及一个大型国际公司(Ericsson)的支持,并且所有代码都是开源的,经过同行评审。我认为假设你能单独构建出同样健壮和可扩展的东西有点自负!
所以请使用OTP。即使是“玩”项目,也要使用OTP,因为它只能帮助你学习如何使你的“商业”代码更好 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接