linus的一席言论引爆了C和C++社群间的“战争”。无论如何,我不会趟这趟混水。因为两种语言都是我的珍爱。C代表了我编程生命的童年,而C++代 表了青年时代。(呵呵,中年还没到呢。)长时间用C++,不玩儿点C技巧是不可能的,任务所致。只是在必要的时候用,必须恰到好处。但对于我而言,C技巧 是必不可少的。(对于C++的新手,请慎重)。
唉,同室操戈,令人心痛。
我在网上找到了一点点有代表性的数据,用以表明两种语言的各自特 征。如果有机会,我还会把得到的数据贴上来,供大家参考、分析。希望能够减少一些无用的争论。(有用的争论自然应鼓励,但至少不是linus的这种主观的 论断和谩骂。那两句粗口,有损其高手的名分(我还不敢称其为“大师”))。
====================================
1、Quantifying the Debate: Ada vs. C++ (www.stsc.hill.af.mil/crosstalk/1996/07/quantify.asp)
这篇比较老,原是用来比较ada和C++的,C作为陪衬。但数据是挺直观的。主要集中在软件工程方面,如平均每功能点代码行数、错误数、费用等等。
这篇文章包含军事方面的项目,可以是给军方做参考用的,从链接上看,是美国空军 Software Technology Support Center 。(也许是用来评估JSF项目用什么语言的,瞎猜)。应当比较客观。只是很老,那时的c++和现在也不一样。
2、 Quantifying Behavioral Differences Between C and C++ Programs(http://www.cse.ucsd.edu/~calder/papers/JplVersion.pdf)
这篇也是95年前后,网站是 University of California, San Diego ,文件名上看似乎是喷气推进实验室的论文。
文中主要集中在性能方面,包括直接和间接调用数、调用相关代码数,甚至是catch命中率。
文章并不说好坏,只说差异。得出了如下基本结论:
唉,同室操戈,令人心痛。
我在网上找到了一点点有代表性的数据,用以表明两种语言的各自特 征。如果有机会,我还会把得到的数据贴上来,供大家参考、分析。希望能够减少一些无用的争论。(有用的争论自然应鼓励,但至少不是linus的这种主观的 论断和谩骂。那两句粗口,有损其高手的名分(我还不敢称其为“大师”))。
====================================
1、Quantifying the Debate: Ada vs. C++ (www.stsc.hill.af.mil/crosstalk/1996/07/quantify.asp)
这篇比较老,原是用来比较ada和C++的,C作为陪衬。但数据是挺直观的。主要集中在软件工程方面,如平均每功能点代码行数、错误数、费用等等。
这篇文章包含军事方面的项目,可以是给军方做参考用的,从链接上看,是美国空军 Software Technology Support Center 。(也许是用来评估JSF项目用什么语言的,瞎猜)。应当比较客观。只是很老,那时的c++和现在也不一样。
2、 Quantifying Behavioral Differences Between C and C++ Programs(http://www.cse.ucsd.edu/~calder/papers/JplVersion.pdf)
这篇也是95年前后,网站是 University of California, San Diego ,文件名上看似乎是喷气推进实验室的论文。
文中主要集中在性能方面,包括直接和间接调用数、调用相关代码数,甚至是catch命中率。
文章并不说好坏,只说差异。得出了如下基本结论:
- C++ programs often perform an order-of-magnitude more indirect procedure calls;
- procedures execute three times more instructions that C++ procedures (including methods), on average;
- C and C++ programs have basic blocks of approximately the same size; C programs execute more conditional branches than C++ programs and C++ programs execute more procedure calls, indirect procedure calls, and returns than C programs;
- C++ programs issue more loads and stores than C programs,
- C++ programs allocate far more objects from the heap; and
- C++ programs have worse instruction cache locality;.