D語言的前景如何?在中國的發展情況如何?


瘦腰題,照例首先感謝 @昝東。

不過呢,這個問題找我回答有點找錯人了。說來慚愧,這多年來我除了知道D語言這個名字之外從未關注過它,其次我在編程語言選擇上已經過了關注語言的年紀。然,有問題才有進步,故臨時抱佛腳,我姑妄言之,諸位姑妄聽之。

首先,D語言的前景如何?

個人觀點,原則上我對D語言不抱任何期望。理由比較複雜。

我對程序設計語言一貫的評價原則只有一個,就是它是否解決了某種確實存在的工程問題。比如C給多個不同平台的彙編語言提供一個儘可能通用的通用語法,以此解決彙編的移植問題;又比如PowerShell成功地給系統管理員提供了一種成本最低的調用.NET代碼的方法,甚至系統管理員還可以繼續使用傳統技術,比如ActiveX和WMI。這樣的語言我認為它會有比較好的前景,哪怕它本身有一些明顯的缺陷都無妨,比如C中到處都是未定義行為的標準庫,又比如PowerShell那種有意模仿Perl卻畫虎不成反類犬的語法。

照這樣的標準看,我很難相信D能有什麼前景可言,因為我看不到它能解決什麼特定的工程問題。從Digital Mars的主頁上看,似乎它能解決的問題也都能通過C/C++解決。原話(http://www.digitalmars.com/d/2.0/index.html):

&>&>&>&>

Its focus is on combining the power and high performance of C and C++ with the programmer productivity of modern languages like Ruby and Python.

&<&<&<&<

Productivity?Power?Performance?這些跟語言設計一點關係都沒關係。它取決於編譯器的優化和配套開發工具的完整性,比如調試器和性能Profiler。似乎D唯一能做的就是讓程序員寫起程序來舒服些。問題是,程序員寫程序的目的是為用戶提供功能,不是為了讓自己舒服。在我看來,拿這個做賣點的語言根本沒有生命力可言,除了一種例外,那就是有一個強力的公司出於戰略或政治上的考慮力推之,就像微軟,過去十年甚至不惜打壓C++為C#讓道。但Digital Mars顯然也不是微軟。

其次,在中國的發展如何?

臨時做了些功課,找到了http://www.dsource.org/。總計不超過300個項目,完全無法和PiPy 16681個包(http://pypi.python.org/pypi)相比,更別提CPAN。數量不是問題,更致命的是分類。dsource上大部分都是程序員直接相關的函數庫、伺服器之類的工具。至於應用加遊戲兩類,總數:39個。

這還是一個相對國際化的社區了。國內的狀態?不敢想像。

最後,照例個人吐槽。

我遇到過不少朋友問我某種語言怎麼怎麼有前途,還有些把主語換成「操作系統」或「新技術」的。平心而論,我不太理解這種問題有多少討論的必要。因為某種語言或者別的什麼「有前景」而關注之,我承認這做法本身無可厚非。畢竟這是為生計考慮,理由很正當。但是作為一名寫程序的手藝人,只關注前景而不是工具本身,是絕不可能讓我成為專家的。而老闆給我一份工作,是看重我的技術,而不是對所謂「前景」的洞察力。另外,在所有技術性質的行當里,所謂前景的洞察力仍然植根於本身技術的功底(除非您在天朝走政府路線,那麼另說)。最後,一位嚴肅的工程人員是應該也必須有勇氣為自己賞識的技術用行動投票的。

我想說的另一點是,不要把前景看做一個靜止的東西。語言的發展和變化是一個過程,時間會讓語言的定位和應用都發生難以預料的改變。比如Python:我用Python開始於2001年。那時候雖然它是我唯一用來寫系統管理腳本的語言,但我對它的「前景」並不看好。因為作為一門通用腳本它的標準庫並不大,所以能解決的問題首先並不比Perl多,其次它的競爭領域裡有Perl這種成熟的語言。誰曾想PyGTK這個神器讓Python迅速成為Linux平台下快速UI開發的事實標準,同時網格計算界對Python的使用使得Python忽然在學術界開始廣為人知。與此同時人們終於發現Python標準庫經過多年積累居然也非常完整(用內置的Python庫甚至可以寫一個完全符合POSIX標準的服務進程,很多號稱牛X無比的語言都未必能做到),於是乎各種應用就呼啦啦都起來了。 記得畢業前一年有一位讀博士的兄台說我技術上有眼力,多年前就開始學Python。我說扯淡,我用Python的理由只是因為和Perl相比Python的語法更合我的口味,是Python自己運氣好,我只是搭了順風車。

所以喜歡一個技術就大膽地用吧。技術和女朋友不一樣,只要努力了,總是會有回報的。:D


四年前工作中用過,當時感覺是個少坑版的c++

不過很混亂,1.0和2.0並存(有點像python2和python3)

然後標準庫有兩個,都號稱自己是標準庫

關鍵還是缺少乾爹


D語言很現代多範式通用編程語言,過程式、面向對象、泛型編程、契約編程、函數式etc,隔離的spawn、CSP通訊等等,語言的特性很多,比Go語言牛逼N倍,但也恰恰是他的缺點,學起來費勁,而Go語法元素少學起來很簡單。不過看看D語言程序設計哲學,了解一下程序語言的現代設計理念也很不錯,一個更好的C++,可惜沒榜上大款,運氣不好出生的太晚了。隨著C++11的出現D估計沒什麼大戲了,C/C++的歷史沉澱太多了。


除了沒有大佬背書之外,D語言最大的問題就是定位。

D的定位是better C++,但居然和C、C++都不兼容,完全無視它試圖佔領的領域裡已有的大量遺產,而且C++從11之後自己已經是better C++了,D更找不到刷存在感的理由。

另外,當初Walter腦抽非要把GC集成到這個支持裸指針的語言的核心裡也為D減分不少,不過既然連Go都能培養一大堆腦殘粉,想來這一點應該不是主要問題。


我個人認為還是很好的.

你可以去嘗試一下,我也是初學者.

只要自己覺得好用,不用關心別人的評價.


謝謝邀請。

沒什麼用處。很多問題用輔助工具(比如 static code analysis)就能解決,沒必要加入到語言中。用新語言解決小問題太小題大作,遷移成本太高。


我必須承認,D2的問題很多,比如編譯器錯誤提示問題,語法檢查不嚴謹,codegen的許可約束,差強人意的phobos2標準庫等。

但個人認為,這些都不是否定一個語言的理由。如果你有能力,解決掉這些問題即可,何況dmd的前端和phobos2是完全開源的,只要我想,我完全可以使用自己的runtime,自己的標準庫,自己的GC。

看到樓上「似乎D唯一能做的就是讓程序員寫起程序來舒服些。問題是,程序員寫程序的目的是為用戶提供功能,不是為了讓自己舒服。」這種言論,實在是有種莫名的傷感,難道程序員不是人?難道代碼不需要維護?難道編寫這段代碼的程序員能夠一直將它維護下去?代碼是給程序員看的,二進位才是給機器看的,而用戶得到的只有界面。

既然C++能做的事,D也可以,而且更舒服,那麼我為何不使用D?D的問題並不是它不夠標新立異,而是因為沒有大佬支持,沒人敢吃螃蟹。有商業支持,才會有就業需求,這樣才會有人學。無論這個語言有多少坑,沒有錢解決不了的事,無論是填坑還是出本《Effective D》,很容易解決問題。

D要做的不是和C++比較(沒意義),而是要變得足夠像Java,無論是IDE支持,還是標準庫支持,都得跟上。這樣,D的優勢才能發揮,保持和C ABI兼容,同時保持Java那樣的簡單,最關鍵的是還不需要考慮VM的細節。

Go才出來幾年?它在國外有多火?它在國內有多火?它能做什麼C++不能完成的事?我想仔細了解下,就能看到事實了,為何有這麼多程序員想成為preacher,這的確是一個值得深思的問題。

其實本來討論」XX語言的前景「意義就不大,無論你看好還是不看好,它依舊會發展下去,你喜歡,你好奇,你自然會去學,然後發現它的好,發現它的坑。對於這麼一種語言,想靠它賺錢,難度有點大,除非你能說服商業公司吃螃蟹。

D的下一步發展得看它能不能標準化,Walter怎麼折騰,肯不肯開放後端,Andrei能不能在FB中為D爭取到更多的空間。

最後,加上一句,不管你們玩不玩D,反正我在玩,而且玩得挺high!


最近 想重拾 D 語言

發現 相比 C# java 之類的還是太複雜了

其實我們需要的是 能夠在編譯級別兼容頭文件的C#或者java語言。

如果nim 能夠如此 nim 肯定會比D語言流行的多。

目前看來 D語言 只是C++better 或者是C++ 少坑版,其複雜度真的不必C++少多少。

基本上一堆新概念 要學習 就難倒不少人。go 流行是因為 即使go 沒那麼強大 但也沒那麼複雜。

雖然go 代替 不了C++ ,但我敢保證 D也絕對不能。

我寧願 去學nim,看到D語言的代碼實在是對D語言 失去了 興趣。

D語言就像是WP系統一樣 被一遍一遍折騰,看似好像 越來越好,但是由於慣性思維和先入為主的觀念 大眾已經默認它們是辣雞。

很不幸,D語言 恐怕 很難有未來了。

引用 知乎上某人的一句話:

雖然程序本身是複雜的事情,但是誰也不想用一個本身就很複雜的語言 去做這種複雜的事情。

這就是為什麼go語言能火,因為 有IDE 而且上手快。D語言。。。。除了編譯器,幾乎啥也沒有。

不能 操起鍵盤就是干 的語言不是好語言!


d語言愛好者,剛入門,非常喜歡d這種用起來舒服的語言。我系統級編程我選d,跨平台我選scala,腳本語言我選python。這三個都是能讓人用著舒服的語言。最反感Java這種裹腳布一樣臭長冗餘的語言


最近有用了下d,也看了下d的語法。dlang能做的事java也能做,而且各種開源庫。語言的應用性是硬傷。用d的公司太少了。

還不如rust。


距離你提問已經四年多了。。。貌似D沒什麼發展。。。反而C++從C++11開始越來越好了。。。D語言的定位有問題,或者說他想要競爭的對手太強大了。。。如今D語言的資料還是少到哭。。。而且想問一下D語言真的有說的那麼厲害嗎?跟Python一樣簡潔,跟C++一樣強大,要是真這樣早就風靡全世界了。。。最最重要的是,D語言沒有好的靠山,看看C#就知道了,微軟打壓著C++來推崇C#,雖然最近貌似VC++更新了很多很多。。。不過那可能是因為C#的地位已經確定了,需要VC++來做一些事情了。。。


關於你們說的我都不了解 但是我要的是反編譯D語言程序 如今已經是2015年 時隔4年後了


推薦閱讀:

自學R語言 ,有什麼注意的細節或好的習慣?
MPS教程四:製作一個簡易語言(下)
【認真臉】TypeScript 不是強類型!只是靜態類型!
第3篇:「來啊,造作吧,反正有大把的內存」
宏名不能隨便起

TAG:編程語言 | C | D編程語言 |