“我应该具备Erlang的哪些实验特性?”;不是";你在用什么?

“我应该具备Erlang的哪些实验特性?”;不是";你在用什么?,erlang,Erlang,我最近发现我不应该在Erlang中使用参数化模块(关键字new),因为它们是实验性的,可能会被删除。还有什么东西我不应该使用,为什么? 参数化模 扩展(我无法确定这是否是参数化模块的一部分) 包裹 这些都是我越来越不喜欢的顺序,所以我会接受参数化模块,不会有太多抱怨,但会积极反对软件包 需要注意的一点是NIFs,即本机实现的函数。它们仍然是实验性的,但我确信它们将在不太未来的版本中变得标准化。以正确的方式使用它们会非常有用。感谢您的编辑jldupont!:)我以前从没听说过包裹。它们是什么?包

我最近发现我不应该在Erlang中使用参数化模块(关键字
new
),因为它们是实验性的,可能会被删除。还有什么东西我不应该使用,为什么?

  • 参数化模
  • 扩展(我无法确定这是否是参数化模块的一部分)
  • 包裹
这些都是我越来越不喜欢的顺序,所以我会接受参数化模块,不会有太多抱怨,但会积极反对软件包


需要注意的一点是NIFs,即本机实现的函数。它们仍然是实验性的,但我确信它们将在不太未来的版本中变得标准化。以正确的方式使用它们会非常有用。

感谢您的编辑jldupont!:)我以前从没听说过包裹。它们是什么?包是名称空间模块。没有人使用它们,邮件列表上也有关于为什么它们是个坏主意的长时间讨论。这是一个没有人知道为什么存在的特征。据我所知,扩展不是参数化模块的一部分,但是想要在Erlang中编程OO的人总是试图将这两个特性结合在一起。我把参数化模块放在我的列表的顶部,因为它们得到了最多的(ab)使用,而且包被破坏得足以阻止任何使用extends的一个用途是为行为创建“适配器”。例如,我的gen_服务器通常只实现gen_服务器行为的两个或三个功能。其余部分可以简单地从gen_server_适配器模块继承(扩展)。