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

相关文章推荐

理解矩阵(二)

接着理解矩阵。上一篇里说“矩阵是运动的描述”,到现在为止,好像大家都还没什么意见。但是我相信早晚会有数学系出身的网友来拍板转。因为运动这个概念,在数学和物理里是跟微积分联系在一起的。我们学习微积分的时...
  • myan
  • myan
  • 2006-04-03 14:01
  • 123274

OpenGL: 视图矩阵的推导

把物体从世界坐标系转化到视点坐标系的矩阵称为视图矩阵。     下面我们先看下opengl视图矩阵的推导过程:     假设视点或camera的局部坐标系为UVN,UVN分别指向右方、上方和后方从而构...

OpenGL 矩阵变换(讲的太好了~!)

Overview 几何数据——顶点位置,和标准向量(normal vectors),在OpenGL 管道raterization 处理过程之前可通过顶点操作(Vertex Operation)和基本...

理解矩阵(一)

前不久chensh出于不可告人的目的,要充当老师,教别人线性代数。于是我被揪住就线性代数中一些务虚性的问题与他讨论了几次。很明显,chensh觉得,要让自己在讲线性代数的时候不被那位强势的学生认为是神...
  • myan
  • myan
  • 2006-04-02 00:30
  • 254415

理解矩阵(三)

理解矩阵(一)        理解矩阵(二)        这两篇文章发表于去年的4月。在第二部分结束的时候,我说:   ...
  • myan
  • myan
  • 2007-11-03 21:42
  • 103544

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

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

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

原文链接: http://blog.csdn.net/sunnyskyliu/article/details/8042676 从这篇文章中,我学到了细节,完美和自我定位。下面分别谈一谈: 从我的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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