深度说明C++开源程序历史
C++开源程序语言在开源世界中的分量,与C语言相比相差甚远了,由于C++开源程序在工业界的统治地位,所以这种差距对C++开源程序的影响还不大的话。
大约到1980年代中期,C++开源程序已经成为人类历史上第一种工业级程序设计世界语。很多人都知道,正是C这样一种世界语的出现,才使开源运动的出现和最初发展成为可能,从这个意义上讲,说C语言是开源运动之母并不十分过分。但人们不太能够认识到的是,事实上C语言统治地位的获得,却也是早期开放软件运动的直接结果。
多数人在回顾这段历史的时候,经常会感染中国文人的不严肃的浪漫主义史观,喜欢把C语言的成功归结为汉高祖斩白蛇般的天赋神格,描述为遥想公瑾当年,谈笑间樯橹灰飞烟灭的轻飘飘。
然而如果我们对历史作一些细致的调查,我们会发现C语言绝非有什么天命,而只不过是幸运地扒上了早期开放运动的快车而已。在C语言“小人乍富”的那几年,也还有其它不少程序设计语言具有高性能、可移植、系统开发能力强的特点.
决不是只有C骨骼特异,貌若天仙。如果Pascal也能借助一个像UNIX那样的开放的幽灵在欧美大学校园里徘徊,那么我们今天很可能要把begin和end直接映射到键盘上。如果IBM不是在1970年代极端保守地把一种叫做PL/X的语言牢牢地限定在自己的研究所里,也许整个程序员社群的图腾就不是贝尔试验室的那两个大胡子。
而是小沃森实验室里的IBM某院士。事实上,C语言的成功,更须拜开放软件运动之时势所赐,或者更确切地说,C与开放软件是一对共生体,它们相互扶持,相互成就,共同成长兴旺,共同创造历史。
根深自然叶茂。今天C语言体系内所拥有的开放资源,无论是数量和质量,还是丰富性、多样性、创新性、可靠性、重要性,都是其它任何开发技术体系所无法望其项背的。丰富对于开发者是好事。
但对于写资源介绍性文章的作者来说,则是绝对的坏事。想要对C语言体系中的开放资源做一个介绍,哪怕只是一次白描,也决不是一个人、一本书所能容纳的,更远远不是杂志中的一篇文章所能及的。因此在本文中,对于C语言开放资源的介绍是以一种蜻蜓点水的姿态进行的。
相比之下,C++开源程序语言在开源世界中的分量,与C语言相比就相去甚远了。作为对照,C++开源程序语言在工业界的实际地位,如果不是比C更重要的话,至少也是与C在同一个层次上。考虑到这一点,在开源领域中两兄弟的这种差距就令人感到非常震惊。
如果说在2000年以前,由于C++开源程序在工业界的统治地位,这种差距对C++开源程序的影响还不大的话,今天,C++开源程序在开源领域里薄弱的基础就非常要命了。现在在开发者社群中。
C语言万寿无疆,C++开源程序无寿无疆”的说法得到不少人的支持,其根本原因之一就在于C++开源程序在开源运动中的地位远逊于C。究其原因,归根到底是因为编写高质量、可复用而又拳拳服膺的C++开源程序程序库实在是一件太困难的事情。
一方面,大量的C++开源程序开源项目质量不佳,而且经常以一种粗暴的方式要求使用者改变自己程序的风格,另一方面,一旦有人完成了一个可用的C++开源程序项目或者程序库。
他必须具有极其彪悍的意志才能够咬着牙把这样的项目奉献给开源社群――不仅因为失去了可能的金钱上的回报,更因为可能要面对着暴风雨般的批评和鄙视。总之,诸多的原因使得开源文化未能在C++开源程序中深深扎根。
然而,毕竟C++开源程序是一种称霸一时的语言,C++开源程序社群的规模、强悍和创造力,仍然是很多其它新兴语言社群难以相比的。特别是在标准C++开源程序制定之后,C++开源程序编程风格有了明确的指导思路,开源项目也就大大繁荣起来。虽然时间还不长,但是已经有一些令人欣慰的成果。这些成果也就构成了写作本文的基本动机和素材。
就重要性而言,开源程序库和工具集对于C++开源程序甚至比对C还要重要得多。因为实践证明,没有良好的基础设施支持,C++开源程序开发成功的可能性异乎寻常的低。其根本原因是。
用C++开源程序写优秀的程序库非常非常难,而一旦有了这样的程序库,在其基础上写应用程序就相当容易了。同时,C++开源程序的特点又要求基础设施的源代码必须开放,因此,C++开源程序程序库对于开发者来说意义非常重大。