@
GeruzoniAnsasu Rust 是想替代 C++ ,但历史包袱决定它做不到。
它没有足够多的难以替代的项目、厂商支持甚至用户的支持,也没有足够具有超过现有语言整体设计的格局,所以没法保证避免和更新近的语言之间菜鸡互啄(虽然大致上是鸡头)。
难学倒是未必,至少不像 C++ 有那么多鬼哭狼嚎教你如何翻车的劣质教材。
这里还有个洞,就是 C++ 理论上应该能允许用户做好,但没有核心语言特性用户实际就做不好的情形——比如早就有 mojo 结果 C++11 还是把右值引用直接内建了。这是加新特性的动力之一,但之后加进去坑就坑大。( C++ 为什么没有 destructive move ?因为类的子对象的构造怎么都不对头……)
Rust 历史包袱更少,就意味着在更 idiomatic 的用法和初期演化效率中都占有优势。C++ 用户基数大,历史包袱也大,加的特性越多就越作死,语言本身就越难以维护。并且现在 WG21 这方面的品味和水准就实在不咋地。凉拌吧。
难维护……看人了。某种意义上 Rust 的用户大致对应 C++ 用户的中间阶层——剩下的能用 C++ 写出可维护性不比 Rust 差的项目的用户以及被教残的 C++ 用户都不怎么会转进到 Rust,而没别的语言背景上手 Rust 是比较吃力的。
@
TaAmSf C/C++ 在这里不占便宜。
用 C 的主要理由就是维护轮子,造轮子都嫌破事多。
用 C++ 的主要理由是维护轮子+造轮子。只是现在要用轮子的用户,基本连 C++ 也懒得用了,结果就是整个语言的发展都不会实质上朝能控制或进一步简化实质复杂性(而不是仅仅少写特定情况下的代码)的方向节制(即便 BS 成天嚷嚷 teachability ),而更在乎有能力造轮子的用户的需求。这样迟早一样会让没有能力造轮子的用户没事可做。
@
sherlockgy @
slanternsw 微软也就折腾 DSL 还行(不管是研究还是产品)。
MSR 搞 PL 的能出点名堂的都偏向现有问题上搬砖的具体实现而非整体设计,造越通用的语言越不顶用,也很难看出这些人有多重视这个方向。
看看那什么 Bosque 之流的水货都能带上微软的名号就知道这些人的态度了。
@
ppphp 人类共识……就凭那一整坨连换行和 indent 都拎不清的蓝星猴子,你还是指望靠分布式共识发家致富比较有现实性……
方法论来讲,靠堆砌特性来设计语言是缺乏普适意义的错误方向,这点在几十年前 RnRS 的开头就说了(显然绝大多数语言在发展方向上这里就完全不合格)。然而现在 RnRS 自己都没太能搞定这个原则……
大部分有能力在这个方向上搞语言的,一开始就栽在用户不够就没用的调调上了,而要得到用户数量上的明显优势就必须妥协自己提供足够多特性,用户越多还越难拒绝,无法回头。这导致没有谁能实际上不违反不管是 PL 理论还是工程上的理想原则。
而更多的设计者根本就是完全没这个概念,只是先想出来让人用再说,到处一大抄,甚至毫不在乎被当作是外行(比如上面拿来婊的那个 Bosque )。
除非能保证对拒绝共识的用户专政,这就没办法收场。这是价值观问题。