【二】進一步瞭解D語言之學前必備

從上一篇文件初步認識了D語言的基本外觀,接下來這篇文件帶大家來進一步認識一下D語言,爲以後的學習打好基礎


一、D語言是編譯型語言

    這意味着使用D語言編寫的程序的性能是有保障的

二、D語言支持哪些平臺

    D語言支持目前主流的平臺,Windows、Linux、FreeBSD,OS X

三、D語言的編譯器有哪些

    DMD(官方編譯器)

    GDC(GCC 家族)

    LDC(基於LLVM)

    DMD 是官方編譯器,是支持D語言版本最新的,其它兩個編譯器對新版本的支持緊隨其後

    關於如果選擇編譯器的一點建議

    如果是Linux平臺,建議選擇GDC,但是儘量不要選擇各發型版本軟件倉庫的版本,因爲通常版本支持比較老,GDC在Linux下依賴比較少,DMD相對比較多,不過開發的話這些依賴幾乎每個系統都能滿足

    其它平臺儘量選擇DMD,如果是學習這這幾個編譯器都玩玩也挺好


D語言的好用的IDE有哪些

    支持D語言的IDE很多,我用過的有4個:

    VisualD(Visual Studoi 的插件,注意,免費版不支持插件,需要會用專業版)

    DDT(Eclipse 插件,支持DUB,目前也是我正在使用的,因爲我是Mac系統,選擇比較少,而且也挺好用的)

    Code::Blocks(支持D語言)

    KDevelop(KDE環境下主要的IDE,支持D語言,比較有特點,Linux下值得一用)


如果配置D語言環境

    D語言環境幾乎不需要配置,只要安裝一個上面介紹的三個編譯器之一即可,具體使用請參考每個編譯器的使用說明

    D語言能做什麼

    Win、Linux、Mac、FreeBSD下運行的程序都能做,系統程序和應用程序都可以,Mac下當然以Obj-C爲主,D語言開發Mac程序需要調用C接口,也就是Obj-C的runtime,如果開發Windows窗口程序可以直接調用API,也可以使用一些開源的庫,也可以用來開發Web應用,總之,D很全能,也很現代,開發效率不比腳本慢

四、D語言使用了GC,這樣不會影響性能嗎

    幾乎所有的開發者都認爲GC是低效的,實際上這是對GC的一個誤解,因爲其它帶GC的語言的實現多數是不可控的,D語言的GC是可控的,這就是說你可以選擇何時回收內存,合適把內存還給操作系統,以及禁用GC的自動內存管理,然而GC很多時候是比手動內存管理要高效的,因爲手動內存管理對malloc和free的使用通常爲了不導致內存泄漏的問題,需要按照一些約定使用,而約定的方式可能導致頻繁的malloc/free 的調用,這樣的性能比起集中管理是要慢的,如果在某些應用中GC真的導致了性能問題D是允許你禁用GC的自動管理的,而且允許使用C標準庫中的malloc/free 手動管理,如果你對手動內存管理有自信的話。所以不用擔心D語言在內存管理方面的性能問題

五、D語言的特性非常豐富

    D的設計借鑑了很多語言的特性,比如函數式語言,動態腳本語言,契約編程,對併發的支持,簡單已用泛型編程等,從這些特性上看,D語言不是一個簡單的語言,不是一個通過簡單學習就能掌握的語言,但比C++的學習曲線要低的多,和Java,C#這類語言的學習成本差不多

六、D語言的源文件有何限制

    D的源文件必須使用UTF-8、UTF-16、UTF-32進行編碼,支持帶BOM的文件,支持以#!開始的指令

    D語言把源文件稱爲模塊,而將包含D語言源文件的目錄(相對路徑,根爲編譯器的工作目錄)稱爲包,通過import 導入其它模塊


D語言除了借鑑其它語言比較好的設計外還有沒有比較有特色的語言結構

    D的接口(interface)支持 final方法

    D的運算符重載支持靜態方法,就是說運算符可以作用在類上,不只是作用於對象

    D語言源文件支持 shell的#! 解釋器指令,也就是說可以做爲腳本使用(但是實現是先全部編譯後再運行,不過行爲上和腳本是一樣的,用起來像是源文件直接執行了一樣,在很大程度上可以取代腳本)

    D的對象可以指定在棧上分配內存,這意味着可以在離開作用域時即自動回收內存,而不必等待GC

    D的編譯時計算能力非常強,這對程序運行速度的提升是巨大的,因爲很多計算在運行時是不必要的,而且這還可以帶來很多的靈活性,如可以在編譯期間動態的生成代碼,比如可以在編譯時將帶有特殊語法的HTML模板轉換成D代碼,而不必在運行時動態的去解釋


D目前有哪些弱勢

    不夠流行,沒有商業利益驅動

    無論哪個領域,D語言都不是必須的,但可能是更好的選擇

    D開源項目還不夠多,目前github上大約有六千多個項目

    D在國內發展受限,中文資料少,且較老,有些資源需要***

    D語言很複雜(當然比C++還是要簡單的),幾乎包羅萬象,不是一個在短時間內就能掌握的語言,學習成本相對較高,這點也是不利於普及的因素之一


學習D語言的理由

    D足夠強大,大多數情況下,有D就夠了

    D在語法上並不標新立異,非常的C like

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章