从技术标准看开源
把最近几周称为OpenOffice周并不为过,红旗贰仟公司作为第六届OpenOffice年会的组织者,利用年会的机会组织了多次论坛,讨论开放源代码的技术和商业问题,可以说是近几年关于开源讨论的一次高潮,特别是最近关于私有软件的黑屏计划,更使这种讨论具有深远的意义。
昨天参加了其中的一个与高校老师和对开源有兴趣的学生的讨论,也让我从他们的角度对于推动开放技术有了一些新的想法,如果能够从我们下一代入手,培养他们对于开源和开放标准的理解,说不定对于优化现有的信息技术生态系统具有非常重要的作用。
信息技术生态中,对于互操作的要求是这一产业的独特之处。传统的产业供应链之中对于协作也有很高的要求,例如前一段时间一本有趣的书中谈到的关于集装箱如何改变世界贸易的分析。但是,传统产业的供应链相对稳定,相对狭窄的企业集群使得这种协作在一个较小的范围内也可以有效的运作。而信息技术作为一种使能工具,其价值就是通过促进经济实体的广泛交流和协作,从而实现其经济价值,所以信息技术的互操作性正是其价值的来源。
因此,用户在选择信息技术方案的时候,首先考虑的就是其互操作的能力,这也是为什么流行的技术可以迅速占领市场的价值基础。实现互操作的复杂性成为信息技术公司选择技术战略的重要的维度,一种很有效的战略就是公司通过独占互操作的基础平台实现价值最大化,而相对应的另一种方式就是公司之间通过紧密的合作,成为技术供应链的一个环节,获得其专业服务的价值。《国富论》的基本立论是分工带来财富,这一判断在传统产业和信息技术产业是相同的,因为技术工人作为历史的发展个体,其技术能力必定是有局限性的,因此也只有通过协作才可以实现技术效能的最大化。而信息化作为渗透到这个社会方方面面各个领域的一个体系,其专业需求的分散化更加明显。所以如果可以预测,基于一家公司作为互操作平台的技术方向只可能是暂时的,而社会所需要的是能够实现良好互操作的、分工合作的技术体系。
为了符合用户的需求,技术厂商也在不断努力去完成互操作的需求,除了一些以为已经通过占领互操作平台而坐享其成的技术公司之外。这种努力就是开放源代码运动和开放标准运动。
正如传统产业的螺丝、螺帽标准所实现的技术协同一样,信息技术的互操作也是通过类似的技术标准所完成的。在ISO/IEC中通过JTC1工作组制定了大量的技术标准,为了满足更快的技术标准需求,很多协会标准化组织也纷纷建立起来,实现技术的协同作出重要的贡献。通信领域更是如果,如果没有ITU的工作,就没有目前跨国界的通讯基础设施。开放标准运动一定程度上解决了信息技术领域分化的问题,从目前互联网的普及可见一斑。
但是,信息技术对于互操作的需求并没有通过标准化的过程得以满足,一方面是由于互操作在信息技术领域作用的无限放大,另一部分原因是传统的标准化体制也无法适应信息技术这样一个由标准引领的产业发展模式。为了应对标准化的不足,公开标准的实现,也就是代码,成为一个影响深远的运动。
代码是信息技术的实现的物理表达,也是实现互操作的核心,随着人们对于软件服务化和信息技术基础设施化认识的逐步深入,开放源代码的商业模式也逐渐清晰。不仅如此,人们还从代码公开运动中看到了其对于技术创新的积极作用,与新经济的核心整合在一起,又增加了开源运动的合理性。
作为开放技术的两个组成部分,开放标准和开放源代码各有其特点,只有有效整合才能为产业带来更大的价值。以下几个基本判断,还需要进一步阐述和分析。
1. 开放源代码必须实现一些技术标准,因此标准的开放性对于开放源代码是重要的;
2. 开源过程中,基于开源内核的产品分化,需要标准进行规制,例如,Linux早期缺乏互操作的版本,限制了普及。LSB标准化的工作进行了及时的规制。
3. 在开源与私有产品的竞争中,开放的技术标准可以作为领军先锋,通过标准撬开垄断的市场,开源才有机会进入;
在高校推广开源的过程中,应当告诉学生们开源和开放标准之间的关系,以便于树立开放的信念,有利于培养支持开放技术的人才。而且,我们的学生应当知道,大家正在学习的技术实际上就是一些技术标准,不仅应当学习这些技术,而且应当参加到定义这些技术的标准化组织中,不仅成为使用者,而且是创造者,Java就是一个很好的例子。