为什么中国开发者对开源社区的贡献这么少?

开源
为什么中国的开发者对于开源社区的贡献会是这么少呢?站在这个时点,将自己作为一个从事软件行业,但已经离开了软件开发领域的“外行”,我倒也是想来聊聊这个问题。

上周与一位软件行业的合作伙伴创始人交流时,他说了一句:你是管技术的吧。我笑说:我应该是技术出身的,但现在并不分管技术领域相关的工作,但看起来自己身上做过Coder的烙印还留着呢。

自己做Coder已经是很久、很久以前的事情了,大概15年前自己就是基于LAMP(Linux、Apache、Mysql、PHP)架构做开发,因此也会有许多的时间去开源社区去找各类有用的代码为自己所用,在2004年前后就在提出一个问题:似乎中国的开发者对于开源社区的贡献极少,可以说中国是一个开源社区的消费大国,但如果谈论上中国的开发者对开源社区有多大的贡献呢,似乎微乎其微。

为什么中国开发者对开源社区的贡献这么少?

15年过去了,不知道中国的软件开发者们对开源社区的贡献度又是怎么样的呢?因为自己离开了开发领域已经很多年了,自己已经很少进入到各类开源社区了,甚至连许多开源社区的账号都已经不记得了,因此不太清楚中国开发者现在活跃于各类开发社区的具体情况,特别是对于开发社区的贡献度情况是怎么样的?前几天将这个问题抛给了10多年前就认识,现在仍然在技术领域的朋友们,得到的反馈是:中国的开发者对于开源社区的贡献仍然很少,至少现在中国有影响力的开源软件仍然是很少很少!

为什么中国的开发者对于开源社区的贡献会是这么少呢?站在这个时点,将自己作为一个从事软件行业,但已经离开了软件开发领域的“外行”,我倒也是想来聊聊这个问题。

1、 中国的软件行业缺少基于高校联盟体的智力人才聚合,我们知道全球最有名的开源社区APACHE,我们从百度百科看可以查询到:Apache软件基金会正式创建于1999年7月,它的创建者是一个自称为“Apache组织”的群体。这个“Apache组织”在1999年以前就已经存在很长时间了,这个组织的开发爱好者们聚集在一起,在美国伊利诺伊斯大学超级计算机应用程序国家中心(National Center for Supercomputing Applications,简称为NCSA)开发的NCSA HTTPd服务器的基础上开发与维护了一个叫Apache的HTTP服务器。

大学里是最容易聚合起一群围绕着学术研究、专业领域创新的顶尖人才的地方,这些顶尖人才聚合在一起很容易引领行业进行创新,美国的大学有着良好的创新氛围,也有着一整套完整的创新体系去保障,包括时间与精力投入的保障、创新与创意的保障、创新成果商业转化的保障。但反观中国的顶尖大学还没有形成这样的气候与生态。

2、中国的软件行业中缺少类似于微软、Google这样的”金字塔尖“的企业为开源社区提供源源不断的资金与智力支持。在开源社区中的投入不仅仅是程序员个体的投入,更需要的是站在软件行业生态最顶端的霸主级企业,如微软、GOOGLE、ORACLE对于开源社区源源不断的资金投入、以及相应的技术人才注入。大家都知道Microsoft是PC时代的软件之王,但很多人却不知道Microsoft早已经是开源社区的最大贡献者了,更在前段时间用75亿美元收购了GitHub(全球最大的开源社区),并承诺保持这个社区的独立性与开放性,微软本身也开放了.NET的源代码(.Net Core),并用大量资金资注了Apache基金会、Linux基金会等。

包括GOOGLE为了和苹果竞争而失去了ANDROID的开源社区,ORACLE支持的JAVA开源社区(原本属于SUN公司的资产,连同SUN被收购后一并转给ORACLE),但在中国主要的软件企业还是2C的互联网公司如BAT,在开源社区上的投入,特别是对于基础架构领域的投入仍然比较少。(具体数据不了解,如果有了解的同学可以告诉我一下)

3、中国软件行业仍然是偏重于“应用型”软件的开发,所使用的底层技术都来自于国外各大软件厂商,特别是在2B领域的底层技术积累更少。中国在2B领域还没有出现类似于Microsoft、ORACLE、SAP、GOOGLE这样的大企业,而要成为这样大体量的企业,往往是在基础架构层级的技术&商业模式设计上有着绝对优势的企业,因为只有这样才能够使自己的软件产品成为“行业中的事实标准”,如在关系型数据库领域就是SQL SERVER、ORACLE DB、MYSQL是绝对的主流,在开源操作系统领域就是LINUX、MYSQL占据绝对的领导地位。

大家可能会问,SQL SERVER并不开源啊,SQL SERVER不开源,但SQL SERVER最新的R SERVER组件就是从开源社区演化而来的商业版本。反观中国的2B企业,更多还是在行业细分、领域细分中做一些有着明显的行业特性、领域特性的产品&应用,站在这个层级上很难推动深层次的技术创新。涉及于行业特性、领域特性的应用都是带有强烈的商业目的的,因此自然无法做到开源,这个时候自然对于开源社区的贡献也就非常有限了,这也是中国的软件行业生态决定的。

4、再多谈一句中国的2B行业中为什么没有成长出巨人型软件企业?中国软件行业在商业领域中,有政府&公共服务、医疗、电信、金融、电力等多个领域有机会长出2B领域的出巨人型软件企业的,但目前看起来似乎都没有看到,这又是为什么呢?其实这个和国内在软件知识产权的价值认同度有很大的关系,在2B领域的软件生态系统中,一旦甲方的规模足够大、足够强势的时候就会提出两个要求:一是以自主可控的名义要求乙方开放源代码,活生生地产软件产品公司干成了一个软件外包开发公司;二是以战略合作的名义要求不能收取”软件许可费用“。也就是说,在国内的软件生态中,客户认可的是你作为“码农”一行行写代码的人工投入价值,但并不认可软件产品背后的“创意价值”。当然,这就更不要提国内各类软件公司同行间你抄我,我抄你的风气了,在这个环境中,所有企业只能依靠着“收取人头费”过日子,人均产值上不来,大家都活的紧巴巴的,哪有余钱去做下一轮基础架构层级的技术创新啊,哪有什么钱去做开源社区的投入啊,活在当下最重要。再说,投入到开源社区的创意搞不好还是变成自己的竞争对手攻击自己的武器呢,那就形成了开源社区的资源能用就尽量用,但对于社区的贡献嘛,让别人去干就好了。

5、中国的开发者群体中缺少足够多的“顶级开发者”,中国的软件行业发展30多年,相信许多第一代的开发者都已经离开了开发的岗位,能够在开发领域坚持的少之又少,没有足够的专业积累和沉淀,如何能够成为这个行业中的顶尖王者,又何谈与全球的顶尖开发者同台竞技,为这个行业带来足够的价值呢。上次与一位合作伙伴公司的CTO交流,他在搜索引擎的领域干了20多年,现在转做AI领域的创业,为了实现更好的AI能力,他通读了所有AI领域的论文,并基于这些论文做了许多技术原型的检验,并最终形成了他们自己独特的技术&产品能力,包括从数据库层就开始自己写,这就需要有足够多的领域经验才行,但这样的“技术型创新公司”在国内还是少之又少。

当然,更进一步地说,这也可能是因为我们所接受的大学教育更多的是“专业教育(special education),普遍缺少通识教育(General education)有关,通识教育指的是有效的思考能力、交流思想的能力、作出恰当判断的能力、辨别价值的能力,这里就会特别提出“商业价值”与“回报社区”的平衡能力。这是放在一个更为宏观的视角来说这个事情的,在我们的教育体系中,成为一个“公民”的教育我们是相对缺失的,因为我们往往为了个体利益或是小组织利益有了120%的投入与付出,但却没有为更大的社区投入与付出的意识 ,在技术领域表现为开发者社区,这是所有开发者能够在技术领域持续精进的知识源泉。

一个好的社会应该那些具有独立观念,既能够考虑自身利益,同时又愿意使个人利益服务于更同利益体的公民组成的,只有我们有更高的社区利益格局,我们才有可能将我们所处的产业构建的更强壮。这或者也是软件行业创业者不断在提出的“生态”理念,超越企业这个组织边界一起做出贡献,应该是在当下需要思考的问题。

责任编辑:未丽燕 来源: 童继龙笔记
相关推荐

2019-04-26 13:10:36

开发者技能工具

2011-06-05 11:13:35

HTCSense UI

2014-07-17 16:18:18

Android L

2012-10-28 10:56:18

2021-10-09 12:10:38

索尼Linux基金会开源

2009-07-21 16:20:52

Adobe开源项目

2015-10-27 15:41:32

twitter开发者错误策略

2012-06-29 09:12:47

Windows Pho

2022-01-20 19:49:10

Sentry开发Scope

2012-05-25 14:20:08

JavaScript

2014-07-28 09:15:02

开发框架

2022-01-11 20:42:54

开发Sentry标志

2022-01-17 19:34:43

SentryWeb APISentry API

2022-01-02 23:26:08

开发SDK Sentry

2013-03-28 19:25:35

腾讯云

2019-01-02 08:00:00

软件工程师软件开发

2011-09-16 15:26:08

Metro开发者

2022-01-18 23:26:45

开发

2022-01-15 23:33:47

SentryPyCharm配置

2015-07-22 16:08:46

OpenStack开源贡献代码
点赞
收藏

51CTO技术栈公众号