Re: [閒聊] 關於D語言

作者: yoco315 (眠月)   2017-07-18 23:35:30
※ 引述《wudidog (嗚啦啦)》之銘言:
: 個人用D語言以後,發現這個語言真的不錯用
: 個人覺得D優點蠻多,但發展已經十幾年了,怎麼還是這麼少人用呢?
: 是什麼原因讓C++的使用者不願意學習D呢?
要回到當時那個時間 @@ 答案就很明顯
C++ 在 98 年定了標準以後,經過多年使用,大家都已經理解 C++98 的限制與不足
這個時候 D 就以補足這些不足並且「以一個 compiler 開發者的體驗」為目標核心
這是一個很實際的目標,如果寫 compiler 的人都能覺得 D 很夠用,那應該夠用了
在 200x 後半那當時,D 其實很有機會要起來了,第一個標準也定好了
我自己也都覺得可以放下 C++ 轉過去了,因為 D 真的補上太多 C++ 的不足了
但是「補足 C++98 的不足」這件事也不是只有一個人在作
除了其他的競爭者,C++ 本身也在作,只是因為 C++ 有歷史包袱,作的慢
但總之在 2011 的時候,塵埃落定了,那瞬間 D 語言本身的優勢不再明顯
而且對於開發一個真正要拿來用的大東西
光有語言本身的優勢是不足夠的,library 也很重要
那個時候 boost 已經發展的相當堪用
一方面補上了部份語言本身的不足,語言之外也如虎添翼
反正,這個時候,D 語言的吸引力已經沒有這麼強了
2011 的這個同時,clang++ 也稍微起來了
因為用 C++ 開發,而且有先人的經驗,clang++ 發展的很快
C++11 標準出來的當下,絕大部分的語言特性就已經被實作好了
這給了 gcc 社群一些壓力,以前他們沒有競爭對手,都碼很龜
但現在兩邊進入一個良性競爭,搶著實作新特性,甚至連實驗性的提案都做
實驗性的提案很快被實作,就很快會有人實驗拿去實作
然後很快的發現提案的隱含問題,然後就很快修正
於是結果是 C++ 進展的速度越來越快,從此就完全拉開了跟 D 的距離
事後現在回頭看,可以說是當 D 就要起來的時候
剛好遇到了 C++ 的文藝復興時期,歷史就這樣了
要選 C++ 以外的話,大概也會去選 Rust (._.)a
D 是在很多面向改進了很多,這是真的,但 Rust 是從根本上改變
你覺得他味道不合也很自然,因為他就是根本上不一樣
但也因為從根本上不一樣,所以他才能從根本上解決一些問題
Firefox 裡面有一個 video parser 是用 Rust 寫的
從 release 之後被呼叫了幾十億次,一個 bug 都沒發生過
https://hacks.mozilla.org/2016/07/shipping-rust-in-firefox/
這不是幾行 code 的小函數(很多人寫幾行 code 的小函數都達不到這種品質
https://github.com/mozilla/mp4parse-rust/blob/master/mp4parse/src/lib.rs
這是 2000 行的 module,2000 行不說大
但第一次投入實際產品就在什麼都會發生的狗屎真實世界執行幾十億次沒出過事
那真的不是開玩笑的
請大家趕快放棄 D,投入 Rust 的懷抱~ ^O^
作者: s25g5d4 (function(){})()   2017-07-18 23:57:00
推 yoco 女神
作者: Hazukashiine (私は幸せです)   2017-07-19 02:20:00
推推~
作者: MOONRAKER (㊣牛鶴鰻毛人)   2017-07-19 08:55:00
mp4parse這個太厲害了
作者: james732 (好人超)   2017-07-19 10:04:00
推說明!!!!
作者: Sirctal (母豬母豬 夜裡哭哭)   2017-07-19 12:46:00
太強了!!!
作者: pttworld (批踢踢世界)   2017-07-19 12:50:00
換了還是摸不到啊
作者: shadow0326 (非議)   2017-07-19 16:06:00
我想寫不寫得出這種品質 關鍵不在語言QQ
作者: freeunixer (御劍客)   2017-07-19 16:28:00
如果你是神之手,那當然手以外的東西都不需要,不然,當 bug 出現在 C++ std lib 上時,你就去查到死吧
作者: dou0228 (7777)   2017-07-19 16:40:00
還好現在不用寫 C++ 程式
作者: wudidog (嗚啦啦)   2017-07-20 11:59:00
D好杯具啊,哭惹~~
作者: VictorTom (鬼翼&娃娃魚)   2017-07-30 18:42:00
還好我不會C++, 沒有選邊站的問題....QQ~

Links booklink

Contact Us: admin [ a t ] ucptt.com