posts - 80,comments - 749,trackbacks - 2
今天很有兴致来思考思考和讨论讨论这个问题,我对软件标准是很感兴趣的,我也相信有很多人对软件标准也是很感兴趣的,但是是不是每个人都能看到软件标准发 展的统一规律呢,未必,我也不能,我只是想探讨一下一个软件标准在发展的过程中竞争与合作彼此交替出现的现象,以及这个现象背后的原理。

我们以一种抽象的软件标准为例。假设这种软件标准在创立之前,人们只能通过使用其它方法或技巧(technics),或者某个父领域的标准中的某一段来 解决问题,我们统称这些解决方案为旧标准,即使它并没有标准存在,用字母A待指。此时,一种新生的软件标准——专门用来解决这一问题的解决方案诞生了,我 们称为B标准。B标准在其创立之初是非常有潜力的,非常有生命力的,但它必须面对A标准的全面打击,不过不用担心,一般情况下第一个吃螃蟹的人不会太惨。 B标准顽强的生存了下来,并逐渐被人们接受。

当B标准正在被人们接受的同时,其它标准也应时代而生,因为与B标准可能采用不同的解决方案,它们不得不制定别的标准。当然也有这种可能,这些标准的制订 者在考虑问题时并不知道B标准的存在——因为它当时还十分弱小,或根本没把B放在眼里。于是B2、B3应运而生,在他们的压力下,B标准不得不澄清与它们 在实现方式上的不同,而转变为B1。

竞争再度开始,B1、B2、B3之间的竞争是更激烈的,(达尔文称为种间竞争),因为它们彼此相互排斥,不会有一个大型项目采用其中的两种或两种以上。但又由于它们面对同样的问题域,最后导致的结果只能是相互学习,因为只有这样才能保证不被击垮。

事务的发展往往具有戏剧性的效果,正是因为它们选择了一条不会被取代的道路,它们才注定会被取代!新的标准必将取代群雄逐鹿的局面,才能稳定市场,因为客 户其实是不希望多个标准同时存在的。于是C标准被建立起来,C标准的建立有两种渠道,一种是大型厂商如IBM等的介入,它们支持B中的一个以合并其它标 准,另一种情况是其它标准自己将自己贡献给其中最强大的一个,弥补它在其它方式解决方案上面的不足。在经历了一段稳定期后,C标准最终成熟起来。

大量商业应用会建立在C标准之上,因为它确实太出色了。但是好景不长,随着市场的发展,C标准的生命周期也会有终结的时候,此时它又面临两种可能的境地。 第一,问题域进一步细分,又出现了很多0解决方案的领域,如果读者稍加注意,就会发现C标准目前已经处在当初A标准所处的位置了(注意前面红字的位置)。 第二,可能会存在另一个与C标准竞争的新解决方案诞生,它一诞生就具有强大的生命力,且采用与B标准不可能调和的解决方案,如同Java和DotNet一 样,(这和前面蓝字的部分是有区别的),我们称为D标准,此时D标准要做的不只一件事,它既要和C标准争天下,又要尽量平息自己内部的矛盾,在两线作战的 情况下,D标准可能昙花一现或者干脆把C干掉,坐到A的位置上去。

做软件的泡泡

posted on 2005-03-20 23:43 Brian Sun 阅读(2370) 评论(4)  编辑  收藏 所属分类: 软件

FeedBack:
# re: 软件标准的生命周期
2005-03-21 08:11 | Brian Sun
例子:Java的持久化问题

A: 二进制序列化
B: Entity Bean
B1: EJB 2.x/容器托管
B2: Hibernate
B3: JDO
C: 还不敢肯定,可能会是EJB 3.0
D: 可能会是JDO 2.0



  回复  更多评论
  
# re: 软件标准的生命周期
2005-03-21 08:14 | Brian Sun
例子:面向方面语言

A: 面向对象语言
B: AspectJ 1
B1: AspectJ 2
B2: AspectWerkz
C: AspectJ 5
  回复  更多评论
  
# re: 软件标准的生命周期
2005-03-21 23:15 | Frank Shaka
不是有种说法:"一流的公司做标准,二流的公司做…………"  回复  更多评论
  
# re: 软件标准的生命周期
2005-03-22 09:05 | Brian Sun
一流的公司做标准,二流的公司做服务,三流的公司卖产品,四流的公司写软件!

我们公司界与三流和四流之间,不过比KD好,他们只是四流公司。
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: