Skip to main content

Open Source 101:开源经济学原理

Open Source是人类探索虚拟世界的文明之光,而我最多是现实世界中古罗马竞技场上的一名朗诵者。2019 年的第一个系列文章向开源致敬。这是 Thinking in Open Source 系列中的第一篇。
刚刚过去的 2018 年是『开源软件运动』的第 20 个年头。1998年,开源Open Source这个词在硅谷的 Palo Alto 被正式提出[1],开源运动拉开帷幕。当我们把一个事件称之为『运动』的时候,她背后一定蕴含着深刻的社会意义,代表一种社会思潮。始于 20 年前的 开源软件运动Open Source Software Movement是 1980 年代自由软件运动Free Software Movement的延续,Free Software 正确的翻译不是『免费软件』,而是『自由软件』。自由软件运动的核心是由那群极具极客精神的第一代网络空间黑客Cyberspace Hackers所主导的世界观,他们认为在网络空间中人人都应该有参与其中的『自由之权力』,而昂贵的付费软件阻碍了这种自由权,也阻碍了网络世界的伟大建设。这群黑客的思想纯粹而富有使命感,就好比 1620 年从不列颠驶往北美大陆的『五月花号』上的那批清教徒,他们定义了美利坚精神的内核。
开源作为一种生产协作模式大幅提升了经济学中的两个关键要素:商品的生产效率及分发效率
Wikipedia 上『经济学』的简单定义:
Economics is the social science that describes the factors that determine the productiondistribution and consumption of goods and services.
开源不是一种商业模式,因为是否开源与是否能产生商业收入并没有必然的因果关系。我们也不能把开源与 免费增值Freemium 这种商业模式简单划等号,因为基于闭源也可以做免费增值。
开源是一种生产协作模式,在这个生产模式之上可以设计不同的商业模式。从经济学角度讲,开源带来的突破主要体现在『商品供给侧的交付效率』,通过开源软件协作网络可以更高效的生产软件商品、交付软件商品。
这里的协作第一层意义指的是开发者分工协作层面的协作,在一个相对松散的协作网络中新加入社区的贡献者基于前人的基础最大程度发挥自己的优势,不需要自己重造轮子,这也避免了整个社会重造轮子;第二个层面的协作意义在于商品的需求方也参与到其中,因为通常在一个典型的开源项目中开发者本身也是用户,这种协作方式使得生产过程可以更快的响应实际需求,快速迭代出可用的产品。
去年 9 月在纽交所上市的开源数据技术公司 Elastic 自 2013 年成立以来至 IPO 时已经累计超过 3.5 亿次产品下载,在全球 46 个国家有超过 10 万会员、将近 200 个开发者小组。Elastic 上市前 12 个月的营收超过 1.6 亿美元,覆盖了超过 5000 家客户,包括世界 500 强将近三分之一的企业。作为一家企业级软件公司,成长速度非常惊人,背后是开源的力量。
需要说明的是,开源并不适用于所有的商品类型,开源只可能发生在边际成本为零的商品类型上,也就是说消费者对一种商品的复制是几乎没有成本的,对于生产者而言也不会产生任何额外的成本(但由于放弃了版权失去了可能的获利机会)。这同时也意味着生产者的工作成果有机会得到无限放大,因为基本的经济学原理决定了越低的成本能带来越多的消费。通常这种商品只能是一种『信息商品』,例如软件代码、设计方案、内容创作等,不可能是一种实物商品。
表面上看,开源有很强的『利他主义』色彩,甚至容易和公益混淆,但其实开源有非常明确的经济学合理性,绝对不仅仅是情怀驱动。当我们讲经济学时,并不一定跟『钱』相关,本质上我们是在看个体在支配有限资源时的行为动机,『钱』只是激励的一种表现形式。从微观经济学角度来看开源能帮助我们理解个体和企业参与开源经济的动机。
Wikipedia 上『微观经济学』的简单定义:
Microeconomics is a branch of economics that studies the behavior of individuals and firms in making decisions regarding the allocation of limited resources.
那么,作为开源经济中最核心的引擎,生产者的动力来自于什么呢?
个人代码贡献者向开源社区投入的是时间精力,而非生产资料,大部分情况下贡献者并不会因此而获得直接的财务回报,但是通过参与到开源社区的活动,贡献者能收获的将远超直接的财务回报。这包括:参与到一件具有伟大意义的事业中、在社区中证明自己的专业能力并获得行业认可、释放自己的兴趣爱好(这本身就是一种奖励)、在工作中甚至是未来的创业融资中获得更高的议价能力(这实际上是直接的物质奖励)。
从『马斯洛需求层次理论』来看,开源社区能带给社区贡献者的回报是独特且巨大的,直接触及第四层次(尊重的需要)和第五层次(自我实现的需要)。这其实也解释了为什么开源社区能吸引到最顶尖的工程师,因为越是顶尖的工程师就一定有越发强烈的自我实现诉求。
Maslows hierarchy of needs
企业作为一种天然逐利的组织,作为生产者参与贡献开源社区的动机也是明确的。有两种企业会选择开放源代码,一种是开源社区背后的『主导企业』对其核心业务的开源,例如 MongoDB 开放 NoSQL 数据库技术 MongoDB、Redis Labs 开放 NoSQL 数据库技术 Redis;另一种是『大型企业』对其非核心业务的开源,例如 Google 开放 Go 语言、Twitter 开放前端开发技术 Bootstrap。
这里我们主要讲后一种企业,也就是大型企业的情况(前一种企业的情况我们在『Open Source 102:开源的商业竞争优势』中作分析)。对于这类大型企业而言,开源最直接的动机就是『获取人才』。软件工程师是一个天然对开源有认同感的群体,开源一个项目可以帮助企业招募到或者是留住这个领域的顶级工程师,同时,通过开源多个项目,也将帮助企业建立工程师文化的品牌,吸引更多优秀工程师。
此外就是这类大型企业的战略性布局,通过开源来与竞争对手抢夺市场份额,例如 Google 通过开源 Android 来与 Apple 争夺移动市场、通过开源 Chrome 来与 Microsoft 争夺浏览器市场,或者是定义行业技术标准,例如 Google 开放容器技术 Kubernetes,这些战略性动作对于大型企业商业生态整体的成功至关重要。
此外,还有一类企业虽然不主导某个开源项目,但是会源源不断的向某个开源社区投入人力财力资源参与到开源社区中,例如 Intel 与 Red Hat 长达 25 年的合作,Intel 的动机在于通过对 Red Hat 软件系统的投入来帮助他更好的卖自家的硬件产品,也属于战略性投入。
在开源世界里,开源社区的『人』是最重要的因素,失去了生产者的动力,开源世界的上层建筑将无从谈起,这也是为什么开源社区的社区经营如此重要的原因所在。开源不是一种商业模式,但开源确实可以帮助某些软件品类在市场上建立商业竞争优势。下一篇『Open Source 102:开源的商业竞争优势』我们继续。

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...