其中有两个,Phobos 和 Tango。据我所知,它们是多余且不兼容的。有加入他们的计划吗?如果是这样,什么时候会发生?
4 回答
已为 D2 构建了一个称为 druntime 的通用核心。低级运行时的东西,比如垃圾收集和线程,以前是 Phobos 和 Tango 在同一个项目中互操作的障碍。Phobos 的高级功能依赖于 Phobos 运行时,同样适用于 Tango。
Phobos 的重大更新已经发布(事实上就在昨天(4/20/09)。本次更新尝试利用 D2 的一些新功能并引入范围的概念,这些概念类似于迭代器,但更易于使用且功能更强大。D2 Phobos 与其动力不足的 D1 对应物非常不同。
Tango 是迄今为止更好的 D1 标准库。D2 端口正在进行中,并且当 D2 稳定时可能会进展得更快。一个大问题是 Tango 开发人员是否会对其进行更新以充分利用 D2 的功能,或者他们是否会仅仅专注于使其与 D2 一起工作,就像与 D1 一样。
对比这两个库,Phobos 倾向于更多地关注使简单的事情变得简单、语法糖、便利性和推动标准库中可以完成的事情的信封。它是 STL 和 Python 标准库之间的交叉点,听起来很奇怪。Tango 倾向于有更多类似 Java 的感觉。它更专注于功能的广度和优雅地处理不寻常的用例。它更多地停留在 D 的健全子集中(没有那么多模板元编程等,尽管可以说 D 的一个主要特征是将模板元编程提升到健全的子集状态),并采用更实用的 API 设计方法。
我自己的猜测(推测,但很有意义)是 Phobos 将变得类似于 STL,即一个真正的核心功能标准库,而 Tango 将成为一个实用程序库,有点像 Boost,作为其核心功能被吸收到 Phobos 和/或运行时。
最后,正如其他人所指出的,D1 应该是稳定的,所以这里没有任何变化。
Tangobos是一种使两者兼容的努力。
在 2.0 中,Tango 将能够作为共享核心之上的实用程序库。共享核心已经到位,但是 Tango 项目还没有 2.0 支持。
在 1.0 中,不会有任何变化。这是因为 1.0 规范被有效地冻结以允许开发一个稳定的目标。