2009-04-21 54 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規範被有效地凍結以允許穩定的目標發展。

相關問題