报告 | 2018中国开源年度报告之开发者技术现状
GitChat 公号 原创:开源社
2018-11-13 09:41
1272
引言
软件的世界在悄然发生变化
当著名的马克·安德森撰写《软件正在吞噬世界》的文章的时候,可能没有想到,在 6 年之后,他就需要加上一个定语:
开源软件正在吞噬世界!
面对人工智能的伦理问题、软件产能过剩的问题、软件转型为服务模式的问题、云计算已经像电力一样成为这个世界默认的基础设施、以及海量数据的处理问题…… 围绕这些问题解决的核心原则只有一个:Open Source!
由隐而显
开源 20 岁了,它的内涵和外延正在扩大,不仅仅是一个开源的代码项目,也不仅仅是一个社区。开源正变得日益复杂,研究的人也越来越多,当然这是由于参与到开源中的人和企业越来越多了。以下不妨列举一番:
· 开源是一种社交现象
2018 年,有一个消息堪称开源界的重磅炸弹!这就是微软以 75 亿美元的价格收购了 GitHub。
要知道在 1999 年,人们仍然不把开源当做一回事,Bill Gates 在宣传他的书时,曾如此评价 Linux 的:“确实我们承认在学生和爱好者当中我们不如 Linux,但是我们从多个角度考察过,并不认为它能在商业市场上有何作为。”
开源不止于技术,隐藏在背后的是开发者、工程师们之间的协作与交流,以及彼此的默契与褒奖。而 GitHub 的个人 Profile 更是成为了比简历更能拿得出手的“金钥匙”。
那么这些开源的参与者们日常是如何交流的呢?为何这种交流如此吸引他们呢?
· 开源是一种经济模式
开源界一直以来都在担心搭便车,当然现实中也不乏搭便车、顺便赚点钱的个人和企业。
然而,学术界/经济圈发来了声音,来自哈佛商学院战略部门的 Frank Nagle 教授,刚刚发表了一篇长达 40 页的论文:"Learning by Contributing: Gaining Competitive Advantage Through Contribution to Crowdsourced Public Goods."
从商业的角度论证了,为上游社区做贡献对于企业是大大有利的,这比工程师布道用干巴巴的软件工程理论要有说服力的多,因为懂得算经济账的未必都懂得软件工程。
那些大的企业为何近来开始注重上游的贡献和曝光率?
· 开源是本土同步世界的绝佳方式
无论你承认与否,本土是没有拿得出手的软件基金会或大型的类似 Linux、Hadoop、Kubernetes、Docker 和 TensorFlow 这样的,划时代的、有创新意义的、能解决实际问题的开源项目。
当我们还在利用开源自主的时候,另外一个世界已经走出去很远了!而似乎本土只有“拾人牙慧”的份。
在经历了本土 20 年的开源空白之后,终于还是有一些脚踏实地的务实者,按照国际化的方式运作着项目,虽然力量仍显单薄,但终究是一个良好的开端!
问题:你知道本土的这些在国际上颇有名誉的项目都有哪些吗?发生的时间又分别是什么?
· 开源是中立的治理模式
你能想象没有开源软件基金会的开源项目会是什么样子吗?
Nathen Harvey 在 InformationWeek 的文章中指出了三个问题:“项目应该由商业的赞助商驱动还是外围的贡献者驱动?商业利益是否应该凌驾于社区的意愿之上?该如何以及在哪里为商业实体和开源社区之间划上一个明确的界线?”
作为中立的基金会可能是唯一平衡此问题的方法,在协商、妥协、争论等等之上让软件受益于所有人。
然而问题来了:那些开源的软件基金会是如何运转的?坚守的理念是什么?又是如何平衡软件开发和商业利益的?
· 开源是企业生态战略
2007 年,Google 决定开源已经花了几亿美金的 Android 智能手机操作系统,希望直接和 Apple、Nokia、BlackBerry 展开竞争。
现在根据 Linux 官方给出的数据,80% 以上的智能手机运行 Android(基于 Linux 内核)。
2015 年开源的 Kubernetes 要占领同样数字的市场,在云原生的市场,运行 Kubernetes 的服务几乎占领了容器调度编排系统的全部份额。
这其中究竟蕴藏着怎样的玄机?拥抱开放是否一定就能成功?做生态之前要做些什么?
其他
开源是软件工程,开源是文化现象,开源是尊重知识产权,开源是市场营销,开源是商业模式......还有很多尚待我们挖掘的主题。
开源由亚文化,发展成为主流文化,成形的理论还几乎是空白,尚需更多的人来参与,以科学的视野来彻底诠释这一主题。
调查与洞见
鉴于以上“由隐而显”的各种问题,开源社组织了《2018 中国开源年度报告》调查,从多种纬度、多种方式、多种协作来尝试靠近上述问题的答案。
调查研究是谋事之基、成事之道。没有调查,就没有发言权,更没有决策权。
本文节选自开源社在 GitChat 上的分享,《2018 中国开源开发者调查》由于篇幅过长,以下节选报告中大家最关注的开发者技术部分。
报告背景
2015 年,开源社发布了《2015 中国开源参与调查报告》,对于中国的开源社区、开源生态、开源开发者,做了一次全面的摸底调查,也得到一系列有价值的信息。
3 年过去了,我们再次发起了《2018 中国开源开发者调查》,这次我们联合了更多的开发者社区,也收集到了更多的数据,我们希望了解的,不仅仅是这一年的数据,更希望通过数据的变化,发现一些值得关注的趋势。
这次的调查,我们收集到了 508 份问卷,这使得我们对于中国开源开发者,有了更加深入的了解,也对于未来的发展趋势,有了一些重要的洞见!
希望这样的调查报告,能够为广大开源参与者、从业者、以及制定开源战略的企业,提供有价值的参考。
- 调查对象:覆盖开发者、社区成员、贡献者、学生、政府企业管理人员
- 调查内容:主要涵盖个人信息、工作状况、开源社区以及开发者技术调查
- 调查方法:以在线问卷方式搜集样本和数据,交叉对比法分析数据
- 推广方法:线上社交媒体、博客、开源社、掘金、GitChat、 CSDN 网站,Linux 中国和论坛;线下沙龙会议搜集问卷
- 问题数量:50
- 样本量:508
特邀专家
- 蒋涛:CSDN 创始人 & 董事长,极客帮创投创始合伙人
- 谢工:GitChat CEO
- 阴明:掘金 CEO
- 王兴宇:Linux 中国创始人
- 王启泰:指南针联合创始人
- 梁莉: FreeBSD 基金会董事总监
开发者技术现状
1. 使用语言
使用语言中可以看出,JavaScript 稳居首位,使用者比例高达 58.11%,Java、HTML5、Python、SQL 等紧随其后。

【王启泰点评】调查结果和国外的调查结果在前面的排名上基本一致,和 GitHub 的统计也相似。JavaScript 作为脚本语言,经常和其他编程语言如 Java 和 Python 搭配,本身在 Web 开发的简单功能实现上也有其贡献,加上相对比较容易上手的优势,位居高位是理所当然。
Java 在后台数据处理、复杂功能实现、各种支持框架的品质和选择上有一定的积累和优势,仍然受到开发者的欢迎。Python 有语法简洁高效的优势,并且在数据分析支持上有丰富的积累,在人工智能浪潮的推动下,自然有排名上升的趋势。
【谢工点评】得益于 Node.js 的快速发展,越来越多的前端工程师进阶成为全栈工程师。
对企业而言全栈工程师的增加,降低了项目开发过程中的人员成本和沟通成本,企业在项目规划时,也越来越乐于选择 JavaScript 作为项目的主要开发语言,这也反过来刺激了 JavaScript 程序员的增长和技术的发展。
2. 在线文档协作编辑工具
在线文档编辑工具中,有近半数的参与者使用 Wiki 作为他们的选择,而 Google Docs 也受到大家的青睐,另外,石墨文档等也是大家经常使用的工具。

3. 编辑器
在编辑器使用情况中,2015 年没有上榜的 VS Code 是近三年来的黑马,2018 年排名第一, Vim 和 Notepad++ 一如即往,深受大家喜爱。另外,如 Sublime、Atom.io 系列等 IDE 也都是大家常用的代码编辑器。

【梁莉点评】VS Code 是一个开源的轻量级代码编辑器,可以跨平台安装,在全球的调研中我们也看到 VS Code 的受欢迎程度逐年上升,一如既往地受开发人员的钟爱。
【阴明点评】VS Code 的增长速度在众多编辑器中都是最快的,作为一个较新的自带插件平台的新式编辑器,它也超越了 GitHub Atom 成为开发者的首选。一方面得益于其高性能的效率,另一方面就是相关插件的补充速度非常快,且下载、更新模块的效率都优于 Atom。
4. 版本控制工具
Git 依然是参与者最喜爱的版本控制工具,超过九成的参与者使用它,使用 SVN 的比例从 2015 年的 54% 下降到了 36%。

【谢工点评】之所以 Git 成为最受喜爱的工具,是因为他在版本控制上功能更加强大,但 Git 本身在使用上也有比其他更高一些的复杂度,我们做过一个内部调查,公司内部大多数的工程师对 Git 的熟悉程度停留在初级阶段,常用的命令不足十个,这里面甚至有不少五年以上经验的开发者。
5. 数据库
数据库使用情况中,不出意外地,MySQL 以近八成的占比遥遥领先,作为 NoSQL 代表的 MongoDB 与 SQL Server 跟随其后。

【王启泰点评】MySQL 作为开源数据库的领头羊,居于首位在意料之中,而如此高的比例令人惊喜。NoSQL 中的领先者 MongoDB 有超过 30% 的使用率,支持了应用程序朝向非结构化开发方向前进的想法。
而 Oracle 和 SQL Server 作为付费商业数据库的主力产品,基本上都是企业内闭源开发的选择。在具有开源参与的项目中出现商业数据库,可能意味着部分闭源开发使用了开源的代码。
6. 操作系统
操作系统的使用中,Windows 占据了超过 38% 的份额,Linux 紧随其后,而 MacOS 占比近三成左右。

【梁莉点评】操作系统的使用比例基本和 Stack Overflow 开发者调查是一致的。近日,微软宣布加入 Open Invention Network (OIN),这是一个致力于保护业界免受专利诉讼的行业联盟。
微软将把自己的 6 万多项专利组合免费提供给联盟的 2650 家左右的公司。这一举措也让我们看到微软成为整个 Linux 生态系统和开源社区的全面支持者。
7. Linux 版本
在 Linux 的发行版本中,最受欢迎的依然是 Ubuntu,紧随其后为 Red Hat。

8. Java 框架
在 Java 框架使用方面,Spring 占有绝对优势,使用者高达 81%。
【王启泰点评】Spring 作为轻量级应用容器并且拥有 Sping MVC、Spring Data、Spring Boot、Spring Cloud 等范围的实用产品, 在长久的 Java 开发人员的拥护下继续这样高比例的优势,真是实至名归。
【梁莉点评】毋庸置疑 Spring 是目前最流行的 Java Web 框架。相对于 ZeroTurnaround 的调研报告 中的 Spring MVC 28.82%、JSF 15.2% 以及 Spring Boot 13.35%,Spring 在中国几乎是主导的角色。
9. Ruby 框架
在 Ruby 框架使用方面,排在前列的 Rails 有超过四成的使用率,仍占据着主流地位。

10. PHP 框架
PHP 语言的框架使用方面,ThinkPHP 作为全面成熟的框架,有半数以上的参与者均使用过该框架。

11. Go 框架
Go 语言的框架则呈现百花齐放的势态,使用较多的 Beego 有超过四成的用户比例。

12. Node.js 框架
Node.js 框架,其中 Express 的份额超过 70%。

13. Python 框架
不出意外的,Django 在 Python 框架中独领风骚,有六成的参与者均使用 Django 作为他们的开发框架。

14. 前端框架
在前端框架中,Vue.js 与 JQuery、Bootstrap 三足鼎立。

15. CMS 系统
CMS 建站系统中,WordPress 占到了近七成的份额,具有绝对的优势。

16. 电子商务系统
电子商务建站系统中,Magento 有四成以上的用户使用。

官方总结
完整报告:《2018 中国开源年度报告》
本次 2018 年度中国开源参与调查报告以开源社区协作的方式共同完成,以草根的方式自底向上完成。
与整个庞大的开源社区比,我们个人的视野和资源都有局限,该报告通过问卷方式搜集数据,如管中窥豹,略见一斑。
我们希望由此抛砖引玉,邀请更多的社区和个人加入,一起来完善中国开源年度报告。您的一小步,整个中国开源社区的一大步。