快速业务通道

冒号和他的学生们(连载18)——系统语言 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
ter)能在大多数情况下有效地解决内存释放问题;另一方面,尽管自动垃圾回收机制逐渐为大众接受——据说C++0x也将部分地支持它——但这种机制也存在缺陷。比如一个Java程序如果在某一时段极耗内存,由于自动垃圾回收的不定时性,不能保证及时清理内存,可能会抛出OutOfMemoryError。另外,自动垃圾回收机制并不能完全避免内存泄漏问题,Java程序的内存泄漏可能会比C++的更多,因为C++程序员对此更有戒心。”

问号直奔要害:“您如何看待C与C++中的指针?”

冒号欣然接招:“指针是C与C++最大的特色,其他语言要么不支持,要么支持得有限。C与C++可以说是成也指针,败也指针。用得好可以是削铁如泥的神兵利器,用得不好则可能是自我毁灭的罪恶渊薮。但由于二者定位于系统语言,而指针对于底层操作是必不可少的。同样道理,二者的数据类型的转换比其他静态类型语言更自由,也是源出于此。”

句号总结:“能力越大,责任越大,风险越大。”

“正是此意!”冒号重重地敲了一下桌子,“此话既适用于编程语言,也适用于程序员。至于C++缺少对自省功能的支持,也是因为追求效率,不愿在元数据上花时间和空间。说到C++支持的范式过多,程序员过于自由,代码不标准难维护,这就如同埋怨餐馆提供的菜式过多以致难以摆出一桌酒席一样可笑。最后,指责C++不是100%OOP的说法更是荒谬之极。OOP又不是金子,含量越高越好。试图把一切都装进OOP的箱子里的想法无异于削足适履。典型的如Java中的Math类,逻辑上压根儿就不存在什么Math对象,清一色的static方法和常量就是最好的讽刺。在C++中只要在math的namespace中定义一些自由函数就可以了,自然而简洁。”

冒号和他的学生们(连载18)——系统语言(3)

时间:2011-07-01 BlogJava 郑晖

引号发觉:“您好像把对C++所有的责难都化解了。”

“可恨之人必有可怜之处嘛。”冒号俗语反用,“其实C++仍有不少亟待改进之处,D语言就是很好的启示。D语言的提供了可控制的垃圾回收器;支持动态数组(dynamic array);支持契约式设计(design by contract);废除了C与C++ 令人头痛的头文件(header file)等等。这些都是C++程序员梦寐以求的特征。”

逗号很奇怪:“为什么D语言名气这么小?”

句号吟道:“千里马常有,伯乐不常有,大腕伯乐更稀有。”

众乐。

冒号结语:“C与C++同为系统语言,决定了它们的理念是:优化机器的时间而不是人的时间,优化机器的记忆而不是人的记忆;假设编译器是愚蠢的而程序员是聪明的,因此赋予程序员更多的权利、义务与责任。无视这种背景和理念而去与其他语言相较,必不着筋节。需要强调的是,常见的‘C/C++’的说法很不科学。C与C++虽有千丝万缕的联系,但一个简单,一个复杂;一个纯过程式,一个集过程式、对象式、泛型式和元编程于一体。貌合神离,不宜混为一谈。”

叹号一个问题憋了半天,不吐不快:“我有一个问题:如今电脑性能这么高,C与C++如此强调运行效率还有必要吗?”

“绝对有必要!”冒号斩钉截铁,“其一、纵向看,用户的耐心与电脑的速度成反比,早年一个386人们就满足了,如今却忍受不了586;其二、横向比,相对缓慢的系统竞争力也低;其三、在一些领域如人工智能方面,普通电脑的速度还远远不能满足要求,超级计算机的存在就是明证;其四、仍有些程序跑在资源有限的机器上,比如嵌入式系统。”

引号再次要求:“能推荐一些C++方面的书吗?”

冒号直言:“学好C一本书足矣,学好C++即使推荐十本仍有遗珠之憾。可以说C++是苦了编程

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号