浅薄与偏见 驳“C语言已经死了”
2008-03-08 12:24:50 来源:WEB开发网 【

核心提示:现在,有很多C/C++程序员总是自命不凡,浅薄与偏见 驳“C语言已经死了”,看不起其他开发人员,其实,就证实了C/C++的影响是巨大的,动不动说一门语言死了,或许别人更看不起他呢!>> 有偏见的永远只是个体,而不是群体
现在,有很多C/C++程序员总是自命不凡,看不起其他开发人员。其实,或许别人更看不起他呢!
>> 有偏见的永远只是个体,而不是群体。作者加了后面那句,无疑证实有偏见的不是C/C++程序员,而正是他自己。
4、过早的优化 说到诀窍,你是否曾经浪费脑细胞去研究究竟*p++是不是比p[i]快?你是否曾经花时间去试着做点变化来代替乘法,或者去尝试使循环中的倒置运行更快的方法?还在为传递一个参数的速度和反对添加结构,并且传递它的速度一样而苦恼不已?停吧!算法是速度的要害,程序员的水平决定了他会使用那些算法。知道这一点能让你的程序更好,更快一点并且让你的脑袋少扭几个筋。好吧,有一些例子也许可以这样做的……不,你就别那么做就行了! >> 算法优化是程序设计的要害。但是通常情况下,所有语言(包括C/C++)的程序员研究的是要害路径的优化。研究*p++是不是比p[i]快?我相信这是标准库的实现者要考虑的事情。所不同的是,C/C++程序员也可以和标准库的作者一样去考虑这些细节,而其他语言的程序员被剥夺了这个权利。 说到优化,话题就多了。我曾经向C#的Dictionary中插入了1亿条整数(从1万多个文本文件中读入),结果发现程序运行了整整一个下午仍然没有完成。而我改用C++的std::map,20分钟就搞定了。再试试对50万条自定义的结构体数据进行排序,我相信你和我一样,会深深喜欢上C++的的高效而优雅。 5、测试 你最喜欢的C的单元测试的工具是哪个?嗯…一个也想不到?单元测试一定是一点也不重要,是吧?或者是太麻烦了,很难跟上进度,浪费时间。你可以把这个时间用到更加有用的事情上,让它只占用工作时间的1%,那还比较合适。或者在数据中心,通过优化的没有标记的图形来调试这个仅仅由100个同时在线使用者引起的问题。 >> C++的测试工具,作者居然一个都想不到,我只能猜想可能他是比较喜欢自己制造轮子的那一类。和JUnit对应的CppUnit,难道也想不到?提起CppUnit,我以前用它进行单元测试,但从实现架构上说,我认为它继续了Java代码的臃肿。我在WINX中提供了一个Mini版本的CppUnit,代码量大概只有几百行,功能绝不比CppUnit弱。(要了解WINX,请看这里)。 我本来应该继续再说一些原因的,但是5个现在就足够了;说完这些,现在感觉好点了。C以前是非常棒的…那是在1984年的时候。直到今天,那些用C写的新代码都让我感到惊喜…假如你让我比较的话,我觉得C++只是比C稍微好点。假如你想要学些老一点的语言,不妨尝试Forth,List,或者APL。这些老式的语言起码能教会你,用不同的而且优雅的方式去思考你的程序。 >> 新生的语言,必然会在吸收旧的语言上基础上进行改进。看一个语言的生命力,并不在于看它某些地方存在的不足。事物会发展,并趋于完善。相信C++0x出来后,C/C++语言又将获得新的生命力。单看Java、C#等几个新一代的语言,其中有如此多的C++烙印,就证实了C/C++的影响是巨大的。动不动说一门语言死了,是一种浅薄。
更多精彩
赞助商链接