为什么C++(感谢waterwalk翻译)
刘未鹏(pongba) /文
waterwalk /译
C++的罗浮宫(http://blog.csdn.net/pongba)
首先非常感谢waterwalk的辛勤翻译:-) waterwalk把翻译回贴在原文的下面了,为了方便阅读我提取出来编辑以后重发一个帖子。这篇文章原本是想对最近C/C++争论系统的整理一下一些思考的,但由于一开始的时候用英文写了两段,后来就干脆都用英文了,造成很多人阅读的麻烦,在此抱歉。不过好在waterwalk翻译了整篇文章,于是单独贴在这里:-)
另,原文在这里。
问题
为什么用C++呢? 在你皱着眉头离开之前,试着回答这个简单的问题。效率,是么?人人都知道这个。但情况是,当一个人开始讨论编程语言或与其相关的话题时,他必须要非常明确而有针对性。为什么呢?我来问你另一个问题:如果效率是人们使用C++的唯一理由,那么为啥不直接用C呢?C被认为比C++效率更高(嗯嗯,我知道C没有比C++的效率高多少,所以这里别误解我的意思,因为即使它们二者效率相同,刚才的问题依然存在)。
迷思
我知道你又要说“更好的抽象机制”了,因为毕竟C++是要设计成一个更好的C的。C++没有牺牲效率,同时又添加了这么多高级特性。但问题是,“开发者们真的需要这些高级特性么?”。毕竟我们一直听人讲KISS之类的东西。我们也都听到有声称C比C++更KISS所以我们要用C云云。这种持续不断的争论将C与C++之间的比较变成了一个大大的迷题(或者说是混乱)。令人惊讶的是,貌似的确有很多人更加倾向于用C,最大的理由就是C++实在是太难用对了。甚至Linus也这么想。
这种现象最大的影响就是当人们在C和C++之间权衡时,使人们倾向于使用C。而且一旦人们开始用C,他们很快就适应并满足了(其实,在任何语言乃至任何人类活动中都有此现象,C++亦然,比如常常听到有人说“XX语言我用了这么多年,一直用得好好的”,照这种说法任何图灵完备的语言还不都是能用来编程?)。于是即使他们还没有试试C++,或者他们还没成为好的C++程序员时,他们就开始声称C比C++更好了。然而其实呢,真实的答案往往总是取决于实际情况的。