From: Linus Torvalds (torvalds (at) linux-foundation.org)
Subject: Re: [RFC] Convert builin-mailinfo.c to use The Better String Library.
Newsgroups: gmane.comp.version-control.git
Date: 2007-09-06 17:50:28 GMT (4 years, 8 weeks, 1 day, 20 hours and 54 minutes ago)
2007-9-5,周三,Dmitry Kakurin 写道:
你才是胡说八道。
C++是一门很恶心的语言。但更恶心的还是有一群下三滥的程序员在用它,结果弄出来的都是一堆堆的排泄物。坦率地说,就凭可以把那些C++蠢货挡在门外这一条,就足以证明应该使用C。
换句话说:使用C证明我们神经没有毛病。我知道Miles Bader曾开玩笑说要“气死你”,但实际上是当真的。我已经想清楚了,不管是谁,只要他认为这个项目使用C++会比使用C更好,我都更想“呸”他一口,好让他滚得远远儿地,少来干扰我的项目。
C++会导致最最差劲的设计。总是要使用STL、Boost等等这些臭狗屎,还美其名曰“精巧”的语言库,倒是“帮”你编程了,可是却会导致:
这些狗屎歇菜时无穷无尽的烦恼(说什么STL,特别是Boost既稳定又好移植,全都是胡扯,胡扯好玩吗?)
低效的抽象编程模型,而且两年后你才发现某些抽象并不是很有效率,可你的全部代码都是在那些对象模型上构建起来的,非重写代码不能解决问题。
这么说吧,要想弄出一个不错的、高效的、系统级的而且可移植的C++方案,唯一的结果就是把自己限制住,而这些在C里面都可以信手拈来。把项目限制用C来开发,意味人们不会搞砸它,也意味着很多程序员实际上都理解底层的问题,不会用白痴的“对象模型”把问题搞得无解。
所以真的很抱歉,但对于Git来说,效率一直都是主要目标,C++的“优势”只能酿成巨大的错误。而让我们有机会对那些看不到这一点的人吐唾沫只不过是它的另一个很大的附加优势。
如果你想要一个C++写的VCS,试试Monotone。真的,它使用“真正的数据库”,用了很多“出色的面向对象库”,还用了“出色的C++抽象”。恕我直言,这些设计决策虽然可以让那些CS迷们神魂颠倒,但结果必然是极其恶心、难以维护的大杂烩。
但是,我相信你一定会选它而不是Git。
Linus
深度阅读(外链噢~,下次记得回来这里啊~~)