Google

星期一, 九月 10, 2007

Linus Torvalds炮轰C++

Linux之父Linus Torvalds为了Linux内核开发而专门打造的版本控制软件Git已经引起

了业界的广泛关注。昨天,有一位Dmitry Kakurin老兄在查看了源代码之后,发现使用

的是纯C而非C++,表示不可理解,他直言:"别拿可移植性说事儿,这是屁话(BS,

bullshit)。"(此外,他还批评Git蛮力地直接操作文本,既�嗦又易错,而且很难

跟上高层代码逻辑。)



  这个BS引起了Torvalds的强烈反应,他用"*YOU* are full of bullshit."(你

才满嘴屁话呢)作为自己反驳的开场白。接着,他先转向了对C++的罕见的火药味十足

的炮轰:



  "C++是一种糟糕的(horrible)语言。而且因为有大量不够标准的程序员在使用

而使情况更糟,以至于极容易产生彻头彻尾的垃圾(total and utter crap)。老实

说,选择C就是为了把C++程序员踢出去。……我有这样的结论,任何喜欢用C++而不是C

开发项目的程序员可能都是我希望踢出去的人,免得他们来搞乱我参与的项目。C++会

导致非常非常糟糕的设计选择。你们这些C++程序员总是一上来就用语言的那些'漂亮

的'库特性比如STL、Boost 和其他彻头彻尾的垃圾,这可能对你们的程序有所'帮

助',但是却会导致:



  当库无法工作时无穷无尽的折磨(别跟我说什么STL尤其是Boost很稳定而且可移植

性很好,那全是屁话,而且一点都不可笑)。低效的抽象编程模型,可能在两年之后你

会注意到有些抽象效果不怎么样,但是所有代码已经依赖于围绕它设计的'漂亮'对象

模型了,如果不重写应用程序,就无法改正。



  "也就是说,使用优秀的、高效的、系统级的和可移植的C++的唯一方式,最终还

是限于使用C本身具有的所有特性。项目限制只用C,意味着参与的人不会捣乱,也意味

着会得到许多真正懂得底层问题,而不会折腾那些白痴'对象模型'垃圾的程序员。



  "所以,我很抱歉,但是对于Git这样效率是主要目标的软件,C++的所谓优点只是

巨大的错误。而我们将看不到这一点的人排除在外却成了一个巨大的附加优势。



  如果你想要用C++写的版本控制系统,去玩Monotone吧。他们确实使用了'真格的

数据库',使用了'漂亮的面向对象库'、使用了'漂亮的C++抽象'。可是说老实

话,所有这些对某些计算机专业人士而言富于吸引力的设计决定。



转自:http://www.linuxdiyf.com/viewarticle.php?id=58478

标签: ,

0 条评论:

发表评论

<< 主页

辽ICP备05003652号
流风洄雪听天籁,轻云蔽日看落花

Powered by Blogger