一位作者对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以及这位作者的观点讲出自己的看法。

一位作者对COM的严厉批判

        我刚刚看到华中科技大学新近出版的一本新书《多任务下的数据结构与算法》,作者周伟明。这本书的主题虽然是被无数次重复过的数据结构和算法,但是由于加了一个“多任务”的帽子,就焕发出了光芒。多...
  • myan
  • myan
  • 2006年05月25日 22:04
  • 11099

[康宁]浅论亚里士多德对柏拉图“理念论”的批判与继承

浅论亚里士多德对柏拉图“理念论”的批判与继承一、 绪论哲学(Philosophy)这门古老的学问长期以来一直被称作“爱智之学”。 千百年来正是智慧之光引领着全世界的爱智者们披荆斩棘在黑暗中摸索前进,他...
  • ramacess
  • ramacess
  • 2005年07月28日 22:44
  • 8526

(statistic)你所不知道的P值--对统计学的批判

//2014年11月17日 (文/Regina Nuzzo)衡量统计真实性的“黄金标准”——P值,并非众多科学家想象的那样可靠。 2010年某个瞬间,马特·莫德尔(Matt Motyl...
  • u013599826
  • u013599826
  • 2014年11月17日 16:29
  • 964

一个IT老兵六年的折腾之路!

转眼科技公司成立快两个月了,加上好久也没更新过博客,趁今天周末写点东西,讲讲我毕业6年的故事或者事故吧,6年说短也不短说长也不长,可是人生有几个6年呢?下面我就按时间顺序讲吧!1.毕业杭州第一份工作(...
  • Android_Tutor
  • Android_Tutor
  • 2015年08月02日 14:06
  • 27589

一位人事经理对中国职业人的批判

原作者:不详我在一个生物技术企业工作了四年,之前是做市场的,最近一年被老板调到了人力资源部当经理。一年的人事工作经历使我对人性有了更深入的认识,对中国人(包括自己在内)的坏毛病有颇多感慨和无奈。之所以...
  • wunifeng
  • wunifeng
  • 2004年10月10日 14:26
  • 350

如何通过Nicholas C. Zakas的面试

转自:为之漫笔,在此感谢! 早就打算写这篇文章了,但时至今日才决定动笔。如果你投了简历,那么应该会在面试你的人名单里找到我的名字。你现在就有点紧张了,(好啦,别不好意思)面试总会让人感觉有点不舒...
  • LZG0321
  • LZG0321
  • 2012年04月16日 18:16
  • 314

对番茄花园的批判

          究竟番茄花园错在什么地方?为什么人们对番茄花园的认识存在很大差异?何故?      8月21日中午,我突然接到CCTV新闻频道的采访电话,并于当天下午6...
  • yuanmeng001
  • yuanmeng001
  • 2009年08月23日 06:01
  • 6801

对COM组件的调用返回了错误HRESULT_FAIL

DONET中引用第三方控件时发生错误"对COM组件的调用返回了错误HRESULT_FAIL" 原因是项目中没有CONFIG,添加一个web.config就OK了...
  • ahywg
  • ahywg
  • 2009年10月17日 11:19
  • 3773

"对COM 组件的调用返回了错误 HRESULT E_FAIL"的解决方法

  有时调用com组件时,会返回“HRESULT E_FAIL”错误,这时有可能的错误原因除了代码有错外,另一个原因还可能是我们没有正常配置dcom的属性。如果是后者,我们可以按如下的方法来解决错误:...
  • teg2007
  • teg2007
  • 2009年03月27日 12:00
  • 91006

自我批判

记录自我缺点,从现在开始改正: 1. 得过且过,比较懒,没有韧性,虽然设定了不少目标,但是坚持不下来;2. 没有明确计划,有了中短期的目标,但是没有详细的计划。3. 执行力不够,没有彻底执行的决心; ...
  • wenchenzhao113
  • wenchenzhao113
  • 2009年08月08日 23:06
  • 171
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一位作者对COM的严厉批判
举报原因:
原因补充:

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