并非成见 也驳“驳’C语言已经死了’”
当前位置:以往代写 > C/C++ 教程 >并非成见 也驳“驳’C语言已经死了’”
2019-06-13

并非成见 也驳“驳’C语言已经死了’”

并非成见 也驳“驳’C语言已经死了’”

>> 有成见的永远只是个别,而不是群体。作者加了后头那句,无疑证明有成见的不是C/C++措施员,而正是他本身。

错了,真理是站在少数人这边的,当一种厘革将产生的时候,带有成见往往是公共是传统气力。

>> 这段话越发谬妄了。没见过优秀的C/C++代码? C++尺度库(STL)如此优雅。何况,有那么多经典的C/C++开源作品,以及无意之中泄漏的Windows NT焦点源码,哪一样不是绝世之作?我为作者浅陋感想惆怅。

STL的代码并不优雅,缺乏functional programming机制支持的C++对付实现algorithm很是的牵强,例如我要find(v.begin(), v.end(), compare);的时候(v是一个自界说的布局),我必需在函数外面写一个较量函数,假如要带一些上下文的话还得写一个functor类,很是的丑恶不堪,实用性大打折扣。而FP系的语言来说,可以很是自然的写一个匿名函数。STL里所标榜的容器,算法等观念,在FP里早就原生支持了,并且要优雅的多。至于NT代码这个我没看过欠好说,可是听说代码里有不少当劈头伐员留下来的诉苦BUG及设计失误的话。

>> 内存打点是措施设计中最经典的话题。GC无疑是内存打点一个伟大的厘革,可是我只是把它看作内存打点的一个办理方案,而认为不是独一的办理方案。比GC越发优雅的方案不见得没有。我较量倾向于在特定的环境下选择符合的内存打点方案,而不是没有任何选择的余地,而这正是C/C++的伟大之处。 所有那些GC语言(如Java、C#等)均把这个办理方案强加给措施员,这必然水平上来说减轻了措施员的承担,可是也同时约束了措施员的主观能动性。"分派内存和释放内存在C语言中都是很慢的"?不知道作者从那边得到的结论。

实话说我也不喜欢GC,没有GC的C也可以事情的很好,可是对付FP系的语言来说没有GC是无法正确事情的,所以我照旧得接管GC这个对象。虽然我更喜欢的是将两者相互团结的方法。

>> C/C++语言自己确实没有太多MultiThead的支持,这种环境在C++0x出来后可望改变。可是,请记着C/C++永远倾向于你利用成熟的库来办理问题。

C/C++不能适应将来多核时代的成长,这个会是它消灭的最大原因。库不能真正的办理问题,我们需要的是在语言层面的进一步成长。

>> 指针是C/C++过于机动的浮现。利用指针的代码可以写得很丑恶,但一样可以很优雅。——这一点上用何种语言不会有区别。我相信,可以写出优雅的Java代码,那么也必然可以写出同样优雅的C/C++代码。而反之则未必(因为有些C++某些范式是Java所不能支持的)。C/C++语言中的选择太多,这简直是令人狐疑的,但不见得是劣势。我对C/C++措施员的发起是,多相识和利用C++尺度库,而不是过于胶葛指针相关的细节。

>> 算法优化是措施设计的要害。可是凡是环境下,所有语言(包罗C/C++)的措施员研究的是要害路径的优化。研究*p++是不是比p[i]快?我相信这是尺度库的实现者要思量的工作。所差异的是,C/C++措施员也可以和尺度库的作者一样去思量这些细节,而其他语言的措施员被剥夺了这个权利。

说到优化,话题就多了。我曾经向C#的Dictionary中插入了1亿条整数(从1万多个文本文件中读入),功效发明措施运行了整整一个下午仍然没有完成。而我改用C++的std::map,20分钟就搞定了。再试试对50万条自界说的布局体数据举办排序,我相信你和我一样,会深深喜欢上C++的的高效而优雅。

多年以前措施员们还在C措施内里内联汇编以实现代码级的优化,可是如今已经没有人这么做了,因为CPU越来越巨大了,大大都环境编译器做的比手工的要好。现如今的java/.NET的JIT引擎也已经可以或许到达很是高的优化程度,在机能上C代码的优势已经越来越不明明晰。对付将来而言代码级的优化也已经不再是重点,哪个语言可以适应多核的成长,谁就将成为机能的王者。

>> 新生的语言,一定会在接收旧的语言上基本长举办改造。看一个语言的生命力,并不在于看它某些处所存在的不敷。事物会成长,并趋于完善。相信C++0x出来后,C/C++语言又将得到新的生命力。单看Java、C#等几个新一代的语言,个中有如此多的C++烙印,就证明白C/C++的影响是庞大的。动不动说一门语言死了,是一种浅薄。

说一门语言死了,不是说完全消失,而是退出主流开拓语言队列,逐渐的被边沿化,这些年宣扬C/C++的人已经越来越少了,在许多开拓规模C/C++的职位已经被JAVA、.net、剧本语言等所代替。C++0x出不出来已经不重要了,倒是C++/CLI的呈现带给C++一些新意,不外固然我很浏览C++/CLI,可是它不会成为主流。在多核到来的时候今朝编程语言还没做好筹备,将来我们要面对的不是2核4核而是百核千核这样的局限,这不仅要在算律例模继承成长,编程语言也要来一次重大的厘革才气适应这种成长,至于偏向在那边,FP系的语言或者会给你带来一些启示。

    关键字:

在线提交作业