2016-08-23 48 views
0

我對學習D感興趣。但是我有點被DMD轉向,因爲它不是完全開源的。這就是爲什麼我正在考慮使用LDC,但我不確定它是什麼狀態。在Debian軟件包,它說:學習D時使用哪個編譯器?

Version: 1:0.14.0.dfsg-1  
LDC already compiles a lot of D code, but should still be considered beta quality. Take a look at the 
    tickets to get a better impression on what still needs to be implemented. 

我知道Debian倉庫有時會有點古老,但1.0.0似乎是最不發達國家的最新版本。

我打算用C編寫很多庫。哪個編譯器更適合這個目的? LDC還是DMD?我知道這個問題之前已經被問過,但是我發現的所有問題都比較老,我想知道目前的狀態。

+3

在Linux上,它們都可以和C一起工作。我個人使用dmd,所以你可能有更容易的時間尋找信息或幫助它,但它們之間並沒有太大的區別。 –

+4

DMD **是完全開源的!說它不是一個謊言!但是,您可能想要說的是,您不喜歡DMD的某些部分在限制性許可下發布。 - 你爲什麼在乎?您作爲DMD用戶不受任何限制! – DejanLekic

+0

我們可能不同意這個詞。對於開源,我的意思是它有一個開源許可證。我可以隨意更改它,而不必從Symantec獲得許可。 – Stein

回答

6

我對學習D感興趣,但是我有點被DMD轉身,因爲它不是完全開源的。

編輯:自2017年4月8日DMD是fully OpenSource


這只是關於後端的許可。 整個開發都發生在Github上:https://github.com/dlang/dmd

我的建議是使用DMD,因爲它具有最快的編譯時間,這在學習語言時非常有用(嚴重的是它非常快!)。在Linux上,你可以很容易地安裝DMD - 甚至只是作爲一個用戶 - 與install script

curl https://dlang.org/install.sh | bash -s dmd 

(見downloads page更多的指令和下載選項。)

最後但並非最不重要的有幾個像rdmd這樣的好工具(它允許類似於腳本的DMD源文件的執行),您應該熟悉這些工具,因爲它們可以爲您節省大量時間,使D編程變得更有趣!

這就是爲什麼我正在考慮使用LDC,但我不確定它是什麼狀態。在Debian軟件包中,它說: 我知道Debian存儲庫有時可能有點古老,但1.0.0似乎是最新的LDC版本。

「古有一點」是輕描淡寫;-)
如果你想要去與最不發達國家,你應該明確地搶more recent release。截至目前1.0.0是最新版本,但1.1.0將很快發佈(第二個測試版已經不存在)。您還可以使用安裝腳本獲取最新的LDC:

curl https://dlang.org/install.sh | bash -s ldc 
+0

作爲@ greenify的答案的修訂,您可能會發現DUB有幫助。DUB爲DMD編譯器提供了一個自動包裝的附加層。我發現在D中發展了雙重寶貴的開發。例如,我可以簡單地發出一個命令「dub init foo」,以從名爲「foo」的模板創建一個新的D項目。從'/ foo'中,我只需調用'dub'來編譯並運行'foo'。我知道你的問題是關於編譯器的選擇,但我認爲這是構建環境領域的低成本解決方案,這是一個有前途的節省時間的方法。在這裏找到項目的鏈接:https://github.com/dlang/dub。 –

+0

'curl -fsS https://dlang.org/install.sh | bash -s ldc'可以用來安裝LDC。 – johan