【问题标题】:Building a commercial system: Pure Erlang or Erlang/OTP?构建商业系统:纯 Erlang 还是 Erlang/OTP?
【发布时间】:2011-11-10 00:41:47
【问题描述】:

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

  1. 向你学习一些 Erlang;
  2. Erlang/OTP 在行动
  3. Erlang 编程(阿姆斯壮);
  4. Erlang 编程 (Cesarini)。

Erlang/OTP in Action 一书 (2) 说:“...编写非 OTP Erlang 代码确实是一个高级主题,只有在您真正需要时才应该这样做。所以也许从来没有以非 OTP 方式完成是一件幸事,因为您将立即养成有关 OTP 的正确习惯......”

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

此外,通过阅读 (4),我发现从 Erlang 的基础知识构建知识有助于理解 OTP 的工作原理(但不是相反)。

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

【问题讨论】:

    标签: erlang erlang-otp


    【解决方案1】:

    使用纯 Erlang 学习和玩耍。

    在 Erlang/OTP 中构建系统。

    【讨论】:

      【解决方案2】:

      用纯Erlang能做到吗?

      是的,它可以,取决于 Greenspun's Tenth Rule 的类似物:您的系统将包含一个临时的、非正式指定的、充满错误的、缓慢的 OTP 的一半实现。

      【讨论】:

        【解决方案3】:

        OTP 是用 Erlang 编写的,所以它绝对可以在纯 Erlang 中完成。话虽如此,OTP 为您提供了许多有用的功能,否则您需要自己编写这些功能。 @Alexey 是对的,您最终将在此过程中实施一部分 OTP。问题是 OTP 提供的构建容错系统所需的框架本身必须非常无故障。

        我还将回应@Mazen,在纯 Erlang 中进行实验可以让您很好地了解 OTP 内部发生的事情以及如何在 Erlang 中构建容错系统。之后您将更好地使用 OTP。您将更好地了解什么时候使用 OTP,以及为什么。

        【讨论】:

          【解决方案4】:

          如果您通读“Learn You Some Erlang”(就像您说的那样),您会注意到作者花费了 Designing a Concurrent Application 章节在“plain Erlang”中构建了一些有用的东西。然后在接下来的 2 章中,他基本上将其全部扔掉,并使用 OTP 以更少的代码实现相同的目标(此外,因为它是 OTP 代码,所以它是标准的 - 所以其他熟悉 OTP 的开发人员将会有一个更好的想法去哪里去理解它!)

          OTP 已经开发和完善了很多年(根据 Wikipedia 于 1998 年首次发布),有大量开发人员,并得到了一家大型国际公司(爱立信)的支持,并且同行评审,因为它都是开源的。我认为假设您可以单独构建同样强大和可扩展的东西有点大胆!

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

          【讨论】:

            猜你喜欢
            • 2017-07-04
            • 2012-11-28
            • 1970-01-01
            • 2013-11-01
            • 2018-07-12
            • 2015-12-24
            • 2012-09-08
            • 1970-01-01
            • 2011-09-30
            相关资源
            最近更新 更多