一位作者对COM的严厉批判

原创 2006年05月25日 22:04: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以及这位作者的观点讲出自己的看法。
版权声明:本文为博主原创文章,未经博主允许不得转载。

微软和开放——一段不得不说的往事(二)(转载)

2. Direct3D vs. OpenGL在Andre LaMothe游戏编程的经典著作《Windows游戏编程大师技巧》中介绍DirectX的时候,作者以其特有的LaMothian式幽默感叹道: ...
  • myan
  • myan
  • 2007年12月11日 20:16
  • 11653

侯捷先生的Design Patterns高级课程

    2003年的下半年,侯捷先生应北京一家企业的邀请来讲授STL课程。那时候我刚到CSDN工作,代表CSDN接待侯先生,从而有机会在现场聆听侯老师讲授课程。侯先生的授课风格细致清晰,丝丝入扣,一丝...
  • myan
  • myan
  • 2007年05月14日 20:03
  • 10444

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

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

因为小作者写的是一位天天和自己相处的同学

第二天清早的追求 今天的第二天清早的追求,总评在这篇文章中,感觉凉风习习的,了解她,因为小作者写的是一位天天和自己相处的同学,既使老师不布置,能更好的让他们了解改革开放后,经济,对对在家休息了一...

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

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

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

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

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

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

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

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

Windows 0day成功验证之ETERNALBLUE 本帖由春秋首发~作者:神风 @春秋文阁负责人 方程式又一波0day【该贴有工具】:https://bbs.ichunqiu.com/thr

Windows 0day成功验证之ETERNALBLUE 本帖由春秋首发~作者:神风 @春秋文阁负责人  方程式又一波0day【该贴有工具】:https://...
  • xcntime
  • xcntime
  • 2017年06月02日 11:38
  • 260

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

消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点。作为早期unix通信机制之一的信号能够传送的信息量有限,后来虽然POSIX 1003.1b在信号的实时性方面作了拓广,使得信号在传递信...
  • wgj1922
  • wgj1922
  • 2012年05月08日 22:28
  • 2880
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一位作者对COM的严厉批判
举报原因:
原因补充:

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