2009-04-21 51 views

回答

13

为D2构建了一个共同的核心,称为druntime。低级运行时的东西,比如垃圾收集和线程,以前是Phobos和Tango在同一个项目中互操作的障碍。 Phobos的高级功能取决于Phobos的运行时间,同样也适用于Tango。

Phobos的一个重大更新已经发布(就在昨天(4/20/09)事实上)。此更新尝试利用D2的一些新功能,并引入范围的概念,这些概念与迭代器相似,但更易于使用且功能更强大。 D2火卫一与其D1动力不足相当不同。

探戈是目前较好的D1标准库。 D2端口正在进行中,并且当D2稳定时可能会更快地进展。一个很大的问题是Tango开发人员是否会更新它以充分利用D2功能,或者他们是否仅仅将注意力集中在与D1一样的D2上工作。对比这两个库,Phobos倾向于更多地关注简单的事情,简单的语法糖,便利性和推动标准库中可以完成的事情的信封。这是STL和Python标准库之间的交叉,这听起来很奇怪。 Tango倾向于拥有更多类似于Java的感觉。它更侧重于功能的广泛性和处理不寻常的用例。它保持在D的合理子集内(不是模板元编程等等,尽管可以说D的一个主要特征是将模板元编程推广到理智的子集状态),并且采用更实用的API设计方法。我猜(猜测,但它有很多意义)是,Phobos将变得类似于STL,即一个真正标准的核心功能库,并且Tango将成为一种实用程序库,类似于Boost,就像更多的核心功能被吸收到Phobos和/或druntime中。

最后,正如其他人指出的那样,D1应该是稳定的,所以在这里没有任何变化。

6

貌似截至10月,他们moving toward compatibility,但我不知道从那以后发生了什么事......

编辑:

我还发现this,这似乎表明有没有计划实际合并:

D1的 情况将不会发生变化。然而D2,从 版本2.020开始,Phobos已将 分成两个库,druntime.lib和 phobos.lib。这是为了允许共同的 运行时与Phobos 和Tango一起使用。虽然没有计划 合并这两个库,甚至包括 探戈与释放的DMD,这将允许这两个库 同时使用,没有兼容性 层的 层。

4

在2.0中,Tango将能够在共享内核之上充当实用程序库。共享的核心已经到位,但是Tango项目还没有2.0的支持。

在1.0中,不会有变化。这是因为1.0规范被有效地冻结以允许稳定的目标发展。

相关问题