开源软件的意义

亚当·斯密有句名言:“人天生,并且永远,是自私的动物。”既然人是自私的,而且永远是自私的(至于人为什么是自私的,以及自私被后的逻辑推理的经济学理论,不在我们讨论的范畴),那么我们又怎么去理解开源这种看似无私的现象呢?开源也就是将软件产品或组件的所有源代码毫无保留的公示于众。作为软件产品,源代码是其核心竞争力,开放出来的目的是什么?很多公司,无论规模大小,或多或少都会参与到开源的浪潮中,背后的经济学原因到底是什么?又会遵循什么样的发展规律?这是本章节重点讨论的内容,试着用一个新的视角分析开源世界的现象,以及生生不息的规律。

概述

“存在即合理”是一个自然规律。开源这样形式组织能够持续的存在,有其内在的价值,也有其源源不断的生命力。开源软件在英文中的表示形式有两种:“Open source software”和“Free software”,虽然很多人在强调开源软件不是自由软件,两者不能等价比较,两者对使用的限制范围的解释有着明显不同,有兴趣的朋友可以在wikipedia 上寻找两种解释的详细说明。而我们要从一个新的视角去解释开源软件(后续讨论中开源软件代指了自由软件和开源软件,其中自由软件仅指开放源代码的自由软件,并不再补充说明)。无论是开源软件,还是自由软件,本质上都是开放源代码,“开源”这一行动,已经推动了整个组织的发展,而不在乎什么样的形式开放源代码,所谓的公开使用限制或License 形式已经不再重要,整个开源的世界里只有代码是核心,代码是开源世界中流动的血液,新鲜血液的补给也是整个开源世界源源不断发展的重要原因之一。

开源改变了我们的工作方式。作为一个老程序员,曾经的我,一直以为开源是一件很神圣的事,沉浸在开源工作的程序员都是一批有理想、正直、且有着个人独特价值观的人。直到有一天我终于明白了,这仅仅是人生成长过程中的一个过程,每个能够坚持且富有理想的程序员都会经历这样的过程。随着实际工作经验的积累,沉淀出的理论被现实反复的洗涤,逐渐形成了自我独特的理解,然而这些积累的理论,只能是日常工作的讨论中挂在嘴边的口头禅、茶前饭后的谈资,只能影响着身边的人,也是极少数的人,虽不断地被挑战,内心却还坚持着信念,反复的说服自己的内心“理论本无对错,只因背景和角度不一样”。世界上,几乎所有的科学理论均由反复的实践、不断地试错中提炼出来,虚无缥缈的理论,沉浸在象牙塔中的理论,终就会被淘汰和疑望。几乎所有的科学理论都可以被证伪或证实。永恒不变的真理是数学公式,无法证实,也无法被证伪,一句空洞的公式,不会告诉你:“为什么”,当然也不会告诉你背后的逻辑和规律。所以,我并不关心理论的对与错,只关心理论所覆盖的范围大与小,理论抽象程度的高与低,更重要的是理论是否能够支撑实际的使用场景,是否能够解释实际工作中所遵循的规律。

对开源的理解,当然也是我依据自身的实践经验形成的理论,是我这样一个老程序员参与了种形式的开源活动,留下的心得而已。

开源的历史

开源软件的历史也是从计算机硬件和软件诞生就已经出现的,我不再赘述互联网上能够查询到的信息,只是从个人的角度去理解,也只按自身的理解和朴素的语言去解释这一宏大且有着自身发展特点的经济组织,以及背后存在的规律和经济价值。

自古以来,“商人”是一个唯利是图的代名字,利益永远是追逐的目标,利益面前其它所有东西似乎都“不再重要”。早期的计算机产业是软硬件一体的市场,而软件是针对硬件量身定做且免费提供的,例如:苹果公司的操作系统(MAC OS、iOS)不能运行在非苹果设备上,但一旦购买了苹果的硬件设备,其操作系统本身及后续升级都不收费,当然软件并不是不收费,而是软件是一个看不见且摸不着的东西,价值只能依靠硬件才能得到彰显,这也就使得软件似乎只是硬件的一个附属品,当今社会的某些行业依然存在这样的现象,这也就挑战了纯粹的软件存在的价值。但随着时代的进步和人类不断升级的需求,硬件天然固化的表现形式已经无法满足灵活多变的的使用场景,软件兴起的时代来临了,为了更多个性化且不断变化的需求,软件的价值得到了充分的彰显。

很多人觉得,开源的原始动力来自于程序员对自由的向往,是由无数个独立程序员的独特价值观形成的一种无边界的自由组织,其实,那只是一种带着浪漫色彩的解释,其背后逻辑是早其的程序员在工作中产生了很多的障碍,被迫发起的一项活动。最精典的解释是开源软件的重要创始人之一,理查德·马修·斯托曼(Richard Stallman),时间退回至70年代,当时Richard在MIT的AI(人工智能)实验室做程序员,一件小事,涉及实验室的打印机,当时的打印机都带有程序的源代码,因此在打印机出现故障时,Richard可以直接修改源代码以解决各种故障。但后来实验室购入了一台新的施乐打印机,但不再附有源代码。Richard无法像以前通过修改代码来解决打印机故障,并向实验室的与施乐公司有往来的教授寻求帮助。但该名教授拒绝了Richard,因为已经与施乐公司签署了保密协议。另一件事涉及LISP编译器。LISP是一种古老的编程语言,Richard曾经在一个LISP编译器的项目上工作了好久。后来Symbolics公司向他索取该编译器的代码,Richard便提供了公有领域的代码。该公司在拿到代码后对编译器进行了扩充和改进。得知此事后的Richard向Symbolics公司索取改进后的代码,但是被拒绝,原因是修改后的代码属于专有软件。这两事使得Richard 感到十分沮丧,纯粹的商业限制,已经影响也日常的工作,也间接的影响了整个软件产业的发展,这两件事给了Richard较大的刺激,促使他辞去工作,投入到自由软件运动当中,同时也得到有着类似经历的优秀软件工程师加入其中。

仅接着Linux、Netscape以及Debian等大型的开源软件也相继参与,秉持所有软件都应该对所有人公开的共享哲学,从而进一步推动了开源软件的发展。再后来,开源软件向着更细分、更具体的行业进行渗透,形成了SourceForge、Github 等综合型开源社区,使的开源软件有了更肥沃的土壤,更加蓬勃发展。

开源市场

我们可以将开源世界理解为一个自由的市场,在市场中,不同的角色通过交易,能够得到不同程度的满足。既然是市场,就会遵循经济意义上的市场规律,分工和合作是基础、竞争也是一种常态,赢者通吃、八二法则等经济现象更是不足为奇,下面我们分别从不的角色阐述他们的生存机会和存在的意义。

大公司的生态圈

经济学里有一句名言:“如何分饼,决定饼就有多大”这是一个自然所遵循的规律。实际的生态环境中,也不是所有公司者能够参与到分饼规则的制定。充分竞争的市场中,只有一些头部企业,或者不讲规则的外来者,决定了分饼的规则,这也促使了他们对开源市场有着举足轻重的作用。

规模较大的公司,他们重新定义了竞争方式,面临的也是不同层次的竞争对手,战线也从短、频、快,改变为如何构建自身的护成河。当公司有了一定的经济基础,竞争也会多元化,除了面对面的阵地战,人才、技术体系、企业文化、甚至连员工的精神面貌都有可能变为成败的因素。

一般的理解,大公司开源是对行业的一种真诚和贡献,为整个产业的发展作出的无私行为,似乎和捐款属于同类型工作。公司和个人一样,感恩的心总能获得更多观众的感动和认可。其实,仔细分析后,开源和捐款有着本质的区别,是大公司竞争方式的改变。

处于生态链顶端的企业,并不担心同行的竞争,因为同样的游戏规则下,总能有对策,而不讲规则的企业,总能出其不意。所以,大公司要让市场规模不断做大,同时积聚更多核心技术,为竞争赢取更多的机会。但整个软件产业不是一,两家公司所能推动的,整个的软件产业是一个庞大的生态,类似经济社会的发展,分工可以推动经济发展,同样经济发展也能细化分工。软件产业也需要分工,不同技术特点的工作需要不同类型的公司完成,中小型公司资源有限,但在整个产业链中数量众多,依然有着足够的影响力。同时,大公司资源相对充足,也拥有着各项技术优势,为了让整个产业正向发展,只有整个饼做大了,每个个体才能分到比以往更多的羹。大公司不仅会贡献高质量的开源项目,而且投入大量资源,其目的只有一个,让中小型公司利用这些自身无法实现的技术,逐渐发展起来,推动整个产业的发展,最终将整个产业的饼做大,参与其中的每个企业都能获益。

中、小型公司创业的起点

作为中小型企业对开源的视角与大型企业不一样,他们既是大量开源软件的使用者,也有可能是“贡献者”。中小商业型公司,对外部依赖相对比较谨慎,源代码是否可见是重要的衡量标准。代码完全不可见的技术框架者组件是没有安全感可言,既不可以按自身的业务特点修改,深层次的故障也无法定位,更关键的是严重影响的调试效率。正是这样的需求存在,开源成为了一种竞争手段,弥补了大量纯商业产品的的不足,开源产品有了生存的空间,成为中小型公司创业的机会。

开源的市场存在无限的机会,尤其是足够细分的行业,开源不仅仅是一种竞争力,也是解决了中小企业的服务质量问题,中小企业没有高质量的服务和售后,开放源代码是最佳的销售模式,真正遇到问题,客户也不再担心售后问题。

只要存在时间与成本的交换,开源的市场就存在机会,随着市场的发展和人力资源成本的上升,更多的企业会选择成熟的产品,而不会选择自已研发,这也就存在了商机,中小型企业也能在其中获取利益。

个人、小团队的价值体现窗口

在学术界,通常以论文的数量和质量为衡量标准,每个个人和团队都有自身的圈子,学术界也有圈子,连诺贝尔奖也有圈子,一篇论文能够发表在高质量的杂志或平台上,期间需要经过多轮筛选,当然也有很多业内的专家进行主观评论。所以,这个世界上纯粹的客观世界是不存在的,个人的主观论点想要得到大众的认可,期间经历的过程非常漫长。不否论专家的专业性,但也不能完全的信任,历史上也不止一次的出现被遗忘的数学家、经济学家。在过世后被无数人奉为经典。所以,过于超前或推翻现有理论体系的理论往往会被排斥,同样也会被专家拒之于门外。

开源软件的出现为个人或小团队开启了大门,他们将自己赤身裸体的暴露出来,整个开源的社会体系中没有门槛,拥有的只有展现自我的激情,充斥着春秋战国时代的理论纷争,新的战场人人可以参与,胜败由自己决定。

无国界的交流、学习平台

人类社会里交流的方式主要是语言,除了汉语和英语,我可能无法与其它任何语言进行交流,相信很多人也和我一样,数学的公式和符号需要语言的解释,哲学的思想需要语言的陈述和案例,但开源软件只需要代码即可,大都数程序员可以不理解语言,但代码一定能理解,同样也能从中得到更多。开源的兴起为整个软件学术界搭起一个平台,没有约束,只有看不见的竞争。

总结

开源的世界那么美好,为什么还会存在很多闭源的软件呢?难道是那些闭源的企业毫无公德心?当然不是,源代码不是所有人都能看得懂,源代码也只能在一个开源的市场产生交易,很多人只是从这个市场中获得商品,而不关心商品的制造过程。就像你可以买到面包、饼干一样,不关心这些商品的制作过程。源代码是我们每天接触到的软件的原材料,不是所有人都对这些源材料感兴趣。源代码和其它商品的秘方一样,同样是一个软件公司的核心竞争力,市场中流通的商品无论是免费的、还是收费的都遵循着经济市场的发展规律,所谓的公德心也是建立在生存的基础上,只有活着才能永恒。经济市场中的竞争也会影响的开源市场,为了生存,很多企业依然选择了封闭源代码。我们不讨论封闭源代码是否正确,这应该由市场去决定,他们能活着就是最好的证明。

guest
0 评论
Inline Feedbacks
View all comments
0
如果你有话对我说,请点击x
()
x