【问题标题】:Why aren't erlang packages used?为什么不使用 erlang 包?
【发布时间】:2011-05-29 00:52:56
【问题描述】:

我发现这个页面是关于packages in erlang。我不仅从未见过任何使用此功能的代码,而且我以前什至从未听说过它们。它们不在我所知道的任何书籍或教程中。它们是新的吗?这只是一个概念或建议吗?

如果不使用它们,为什么不呢?如果尚未实施,是否有预计到达时间?

【问题讨论】:

    标签: erlang


    【解决方案1】:

    包已经实现,但目前还只是实验性的,主要是因为对于它们是否应该使用该语言还没有达成共识。许多人,包括我自己,都觉得他们不值得付出努力,也不会真正为语言增加太多。其他人认为这个想法本身并没有那么糟糕,但这不是一个好方法。其他人希望看到他们的语言。目前还没有预计到达时间。

    我的观点是,应该尽一切努力使 Erlang 保持小规模,并且不应该添加任何不能提供非常明显好处的东西。而且我认为包裹不会那样做。虽然我还没有像那些说你添加到语言中的每一个新功能都应该删除一些东西的人所说的那样。

    这就是为什么它们没有在书籍等中提及的原因。

    【讨论】:

    • 为什么你觉得它们没有必要?它们增加了组织并防止命名冲突。目前在 erlang 中没有不丑的方法。你是怎么处理的?
    • @ryeguy:我非常同意 Richard O'Keefe 所写的内容,尤其是 @Scott Lystig Fritchie 回答中的引用。就目前而言,它几乎只是将 _ 替换为 .在模块名称中。在实际方面,OTP 和应用程序的组织方式有很大不同,必须重做才能使其正常工作。我不喜欢它。 :-)
    • @Longpoke:他们不能拥有它们! :-)
    • 名称冲突是另一个问题,包结构并不能真正帮助解决它。我可以有 a.z 和 b.z,我可以有 a_z 和 b_z 但没有碰撞。但是像标准 ML MLB 文件那样导出/重命名包的方法可能会很好。
    【解决方案2】:

    您不是第一个提出这个问题的人,但是邮件列表档案中充满了关于点分隔命名空间是否是一个好主意的讨论,并且普遍的共识是“不”。要找到辩论中“否”方面的相当简洁的摘要,see here

    懒人总结,来自 Richard O'Keefe 的信息:

    最重要的问题是,Java 羡慕的点分包名称并不是真正的层次结构。它们只是拼写有趣的扁平字符串。

    【讨论】:

      猜你喜欢
      • 2011-08-18
      • 1970-01-01
      • 2010-12-10
      • 2010-12-14
      • 2016-10-31
      • 2012-06-25
      • 2020-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多