一位作者对COM的严厉批判

转载 2006年05月30日 15:49:00
        我刚刚看到华中科技大学新近出版的一本新书《多任务下的数据结构与算法》,作者周伟明。这本书的主题虽然是被无数次重复过的数据结构和算法,但是由于加了一个“多任务”的帽子,就焕发出了光芒。多核时代已经到来,所以我们过去的很多经验都需要刷新了。这本书的作者显然在这方面有很丰富的经验,书中从多任务的观点出发,针对很多传统的数据结构和算法设计都作了探讨。比如提到STL中传统的iterator在多任务情况下要么会出错,要么会导致分时效率低下,并且给出一个新的iterator,以适应多任务的要求。可见确实是经验之谈。

        不过最令我感到震动的,是这位作者对COM的严厉批判。说实话,我见过抱怨COM难用的,我自己也经常抱怨COM不好理解,但从来没见过对COM持否定和严厉批判态度的。这位作者在他的书中这样写道:

        “对于模板库,或者任何一种技术,都得看应用的场合。其实,任何一种思想和方法的滥用都会导致严重的后果。就像设计模式的滥用一样。例如,COM的滥用导致现在软件质量的严重下降。COM的设计可以说是软件史上最严重的一次设计失误,COM的设计违反了软件设计的基本原理,但就这样一个设计居然被推广到整个业界使用,造成的危害实在太大了。我们可以看到,很多常用的软件的BUG越来越多,动不动就死掉或要求发送错误报告什么的,很多情况估计都是拜COM所赐。虽然微软现在再也不敢提COM了,但它的副作用短期内仍然难以消除,特别是在中国,谈到设计时很多人现在还在言必称组件。”(1.1节)

       “即使是一些著名大公司开发的软件依然达不到很高的质量,经常出现版本升级越高BUG越多的情况。也许有人会问,这不是在危言耸听吧?其实读者只要看看自己手头经常在用的操作系统和办公软件就知道为什么说这句话了。”(1.5节)

        “像前面提到的COM一样,实际上是一种设计模式,但是被不加限制地推广给用户使用,而大部分用户的水平还没有上升到懂得在什么情况下该使用什么设计模式那么高的层次,后果便是设计模式被滥用,于是我们看到大型软件的质量是越来越糟糕。”(1.5节)

        坦率的说,我对于作者的观点是不赞成的,我手上没有证据表明是COM导致了微软软件质量的下降(真的下降了吗?至少我不觉得今天的Word 2003比10年前的Word 95更容易崩溃。)。不过我赞赏这位作者敢于说出自己真实想法的勇气。因为怕得罪人,或者怕被人拍扳转,而不敢把自己的想法说出来,是我们中国开发者的一个毛病。对什么事情有了看法,敢于说出来,而且敢于写在正式发表的文章和图书里面,这在今天是需要勇气的。只有勇于提出异议,才能够引起争论,加强认识。也许,你揭穿的真的就是狗皮膏药,皇帝的新衣。

        可惜的是,作者在做出一些论断的时候,并没有给出确凿的论据。也许是因为这本书的主题并不是“组件技术批判”,不宜离题太远吧。不过我很希望作者有机会能把自己的观点系统地阐述一番,并且产生一些争论。不管怎样,这对于提升大家的认识还是大有好处的。也希望听到其他朋友对于COM以及这位作者的观点讲出自己的看法。

相关文章推荐

《机器学习实战》作者Peter Harrington:如何成为一位数据科学家(图灵访谈)

作者简介: Peter Harrington,拥有电气工程学士和硕士学位,他曾经在美国加州和中国的英特尔公司工作7年。Peter拥有5项美国专利,在三种学术期刊上发表过文章。他现任HG Data首席...

读一位作者的微软面试心得想到的

原文链接: http://blog.csdn.net/sunnyskyliu/article/details/8042676 从这篇文章中,我学到了细节,完美和自我定位。下面分别谈一谈: 从我的...

【心路】一位新手沫沫的IOS学习之旅(该作者是女攻城师噢)

一位IOS女攻城师沫沫的学习之旅。“谈到ios,我不是大神,甚至我现在依旧称自己是新手,文章还写不出各种控件的各种应用,只能浅谈下我在学习时候的一些心得和体会,让广大要学习ios和正在学习ios的朋友...

一位湖北大学的学生作品(和技术无关,转载于bbs.winzheng.com),实在太感人了

23年前,有个年轻的女子流落到我们村,蓬头垢面,见人就傻笑,且毫不避讳地当众小便。因此,村里的媳妇们常对著那女子吐口水,有的媳妇还上前踹几脚,叫她“滚远些”。可她就是不走,依然傻笑著在村里转悠。那时,...

前端面试题汇总 作者: resharpe 链接:http://www.imooc.com/article/10057 来源:慕课网

第一部分HTML&CSS 1. 浏览器分类 浏览器:IE,Chrome,FireFox,Safari,Opera。内核:Trident,Gecko,Presto,Webkit。 ...

Linux环境进程间通信(三) from IBM developerWorks 作者:郑彦兴 (mlinux@163.com)国防科大

消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点。作为早期unix通信机制之一的信号能够传送的信息量有限,后来虽然POSIX 1003.1b在信号的实时性方面作了拓广,使得信号在传递信...
  • wgj1922
  • wgj1922
  • 2012年05月08日 22:28
  • 2849

Linux环境进程间通信(二下) from IBM developerWorks 作者:郑彦兴 (mlinux@163.com)国防科大

一、信号生命周期 从信号发送到信号处理函数的执行完毕 对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个重要的阶段,这三个阶段由四个重要事件来刻画:信号诞生...
  • wgj1922
  • wgj1922
  • 2012年05月08日 22:26
  • 2861

Python快速教程 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 怎么能快速地掌握Python?这是和朋友闲聊时谈起

Python快速教程 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!   怎么能快速地掌握Python?这是...

中国房地产很大可能是走日本的路子,如果以作者的研究方式将中国未来走势给一个更详细的推算的话更好!总之很赞的文章! 作者:大个子111 链接:https://xueqiu.com/7620040989

房价,可能真的悬了?来源:齐俊杰(ID: qijunjie82)今年过年,席间已经很少有人主动谈论股票了,说道国内的经济形势,大家大多含糊不清,反正都在痛恨手里的钱越来越少了。唯一能提起大家兴趣的事,...
  • thy822
  • thy822
  • 2016年12月22日 10:39
  • 874

linux设备模型理解 转载自作者:wwang 作者:wwang 出处:http://www.cnblogs.com/wwang

作者:wwang  出处:http://www.cnblogs.com/wwang  本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可,欢迎转载,但未经作者同...
  • NanDK
  • NanDK
  • 2014年11月19日 20:46
  • 190
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一位作者对COM的严厉批判
举报原因:
原因补充:

(最多只允许输入30个字)