作者yoco315 (眠月)
看板C_and_CPP
标题Re: [闲聊] 关於D语言
时间Tue Jul 18 23:35:30 2017
※ 引述《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^
--
To iterate is human, to recurse, divine.
递回只应天上有, 凡人该当用回圈. L. Peter Deutsch
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.228.31.16
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1500392135.A.CD1.html
1F:推 s25g5d4: 推 yoco 女神 07/18 23:57
2F:推 Hazukashiine: 推推~ 07/19 02:20
3F:→ MOONRAKER: mp4parse这个太厉害了 07/19 08:55
4F:推 james732: 推说明!!!! 07/19 10:04
5F:推 Sirctal: 太强了!!! 07/19 12:46
6F:推 pttworld: 换了还是摸不到啊 07/19 12:50
7F:推 shadow0326: 我想写不写得出这种品质 关键不在语言QQ 07/19 16:06
8F:→ freeunixer: 如果你是神之手,那当然手以外的东西都不需要, 07/19 16:28
9F:→ freeunixer: 不然,当 bug 出现在 C++ std lib 上时,你就去查到死吧 07/19 16:30
10F:→ dou0228: 还好现在不用写 C++ 程式 07/19 16:40
11F:推 wudidog: D好杯具啊,哭惹~~ 07/20 11:59
12F:推 VictorTom: 还好我不会C++, 没有选边站的问题....QQ~ 07/30 18:42