揭秘中国开发者:Java语言盛行,Windows系统备受青睐,开源项目参与度低

发表时间: 2020-03-10 16:24

整理 | 夕颜

责编 | 唐小引

出品 | CSDN(ID:CSDNnews)

要问全世界最牛的程序员来自哪里,不少人肯定想都不想就会脱口而出是美国。然而,事实上真是这样吗?

答案并非绝对,但中国程序员绝对在全球都有着非比寻常的名声。这是一群爱学习、肯钻研、想法多,虽然很多人拿着比不上国外的工资,却扛得起最重的任务,熬得起最晚的夜。在各种编程挑战赛中,中国程序员往往独当一面,显露出独特的才华,在数学、功能程序设计和数据结构方面超过世界其他国家,综合素质没的说。

虽然优秀,但中国程序员群体和全球其他国家程序员一起,也在经历着由AI、5G等新兴技术带来的新挑战,不断更新着自己的知识库,在日益增长的程序员同胞们中间杀出一条血路,以避免在激烈的竞争中被淘汰。

2019 年-2020 年,中国的开发者过着怎样的生活?他们最关心的技术正在经历着怎样的变迁?CSDN 针对软件开发技术、应用开发领域等方面对问卷进行了重新设计后,出炉了《2019-2020中国开发者调查报告》。CSDN 最早从 2004 年开始针对中国开发者进行大规模调查,是迄今为止覆盖国内各类开发者人群数量最多,辐射地域、行业分布最广的调查活动。

本文将对报告中关于开发者现状和开源技术应用现状这两部分进行详细解读,其中包括开发人员软件开发工具使用特点分析,开源技术应用现状和开发状况,希望能为中国开发者做一次最新的画像,为正在开发者之路上下求索的技术人有积极的参考价值。

首先,我们总结一下报告中关于开发者现状和开源技术应用现状中的几个重要发现:

  • 操作系统:七成以上开发者在用Windows,83%在用MySQL数据库

  • 编程语言:Java长盛,使用最多,最想学
  • 技术平台:Windows远超Linux

  • 框架:Spring、Vue.js为较受欢迎Web框架,Node.js是使用普遍的技术框架

  • 开发环境:Visual Studio使用最普遍,Arm架构多核分布式优势吸引开发者

  • 将近七成接触开源2-5年时间

  • 七成多开发者投入开源时间少于5小时,六成开源项目无收入

  • Apache为最受欢迎开源项目

中国开发者的软件开发工具使用有以下几个特点:

编程语言:Java长盛,使用最多,最想学

根据报告显示,开发者使用的软件开发工具中,其中Java、 Javascript和SQL成为开发者最多使用的编程语言,三者的占比依次分别为60%、42%和39%。虽然技术圈中不断有新的语言成为讨论的焦点,但多数又被“后浪推前浪”,淹没在浩渺的新技术中,而Java虽不再出现在各大杂志和文章的封面图上,但由于简单、易用等特点,在竞争中岿然不动,长盛不衰。紧随SQL之后的还有C(22%)和Python这两个热度不减的编程语言。

开发者最想学的三种语言是Java、Python、 Javascript,而使用最多排在第三的SQL,却在最想学排行榜中位列第四,被炒得火热的Python替代。

操作系统:七成以上开发者用Windows,83%用MySQL数据库

在操作系统方面,72%的开发者在使用Windows,18%在使用Linux操作系统,只有9%的开发者在使用macOS,其他操作系统占据剩下的1%。

另外,被开发者使用最多,排名Top 3的数据库为MySQL、Oracle和Redis,其中83%的开发者在使用MySQL数据库,34%的在使用Oracle数据库,28%的开发者在使用Redis。其后使用较多的数据库还有被技术圈热烈讨论的Microsoft SQL Server、MongoDB、Elasticsearch、Hive等。

技术平台:Windows远超Linux

Windows技术平台是开发者目前普遍在使用的平台,有67%的开发者在使用。46%的开发者也希望使用Windows技术平台。

继Windows之后,开发者使用的第二大技术平台是Linux,有50%的开发者在使用。可能与大众印象可能有所相悖的是,除Windows之外,Linux越来成为更多开发者的选择,这也许和Linux以开发者为中心的设计有关,很多人表示在使用过Linux再回过头来使用Windows会有诸多不适应的地方,习惯之后会发现,相比之下,Linux具有很多优点,比如它的开源性、安全性高,漏洞修补快速、软件支持丰富、多任务,多用户、相对较少的资源占用等。

而后为Android(20%)、Docker(12%)、macOS、iOS,Kubernetes也有3%的人在使用。

虽然Linux的一些优势被开发者认可,但目前来看,在开发者希望使用的技术平台中,拔得头筹的依然是使用最为广泛的Windows操作系统,Linux排在Top 2 的Docker之后,位列第三,其后为Android和macOS等。

框架:Spring、Vue.js最受欢迎,Node.js使用最普遍

Spring是最受欢迎的Web框架,有38%的开发者在使用;最受欢迎Web开发框架Top 2为Vue.js,有32%的开发者在使用,两者遥遥领先。在开发者最希望使用的框架中,Spring和Vue.js也是一对劲敌,只不过排名反过来,有46%的开发者希望使用Vue.js,34%的开发者希望使用Spring。

Vue.js是一个轻巧、高性能、可组件化的MVVM库,由Google 前工程师尤雨溪于2014 年创建。它是 Javascript 家族中最年轻的成员,仅仅推出五年。虽然缺少顶级公司的支持,但是这个框架同时拥有非常容易上手的API,响应式编程、组件化的特点也给它带来很多优势,如轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快。加上Vue是单页面应用,使页面局部刷新,不用每次跳转页面都要请求所有数据和dom,这样大大加快了访问速度和提升用户体验,而且他的第三方UI库很多节省开发时间,这使得它迅速成为开发者最受欢迎的开发框架之一,得到了社区的支持,与自推出以来就受到欢迎的React、Spring之间的差距逐渐缩小。

紧随其后的是jQuery,但占比数与前两者差距较大,仅有14%,其后的ASP.NET、React.JS等占比比较均匀,均在2%-6%之间。

在使用普遍的技术框架中,Node.js遥遥领先,有28%的开发者正在使用,且有26%的开发者希望使用这个框架。

另外还有13%的开发者正在使用.NET框架,以及Hadoop(8%)、TensorFlow(7%)、Apache Spark、React Native等。开发者最希望使用的技术框架和正在使用的技术框架大概一致,只是占比略有偏差。

开发环境:Visual Studio使用最普遍

在开发环境方面,Visual Studio是最为普遍使用的开发环境。

在容器技术应用方面,34%的开发者用容器进行开发,33%的开发者不使用容器技术。开发者基于云 上/浏览器IDE进行软件开发的三要素,最普遍的是启动速度快,操作便利性和桌面版IDE可以媲美。

在使用国产新架构平台(如国产AI芯片、Arm服务器芯片等)进行开发时,如果常用的软件栈/开源组件/基础库/加速库缺乏对应的适配,28%的开发者会选择与厂家联合开发相应适配。

对比与Arm架构的CPU和x86系列的CPU,选择Arm架构的最核心原因方面,30%的开发者认为是Arm架构具备多核分布式优势。

41%开发者认为当下自主可控硬件及软件生态的主要问题是缺乏开源社区的足够支持,许多软件基础设施缺乏适配。

除此之外,开发工具不完善,开发、迁移、调优困难;开发资料及文档匮乏,缺乏足够的代码实例和模板也是当下自主可控硬件及软件生态的主要问题之一。

开发者与开源的关系就像鱼与水,开发者离不开水,而开源也因为开发者而成为一汪活水。

在开源技术应用和开发上,中国开发者也有着独特的特点。

开源技术应用状况

  • 将近七成接触开源2-5年时间

68%的开发者接触开源的时间在2-5年,其中3-5年的占比是36%,1-2年占比为32%,接触开源10年以上的开发者少之又少,占比仅有5%。

  • 首次接触开源产品以开发工具及框架为主

42%的开发者首次接触的开源产品是开发工具及框架,28%开发者首次接触的是互联网产品,其他首次接触的开源产品还包括基于桌面的应用软件、操作系统相关产品和中间件产品等。

  • 七成多开发者投入开源时间少于5小时

77%开发者每周在开源上投入时间不超过5小时,其中,在开源上投入时间1-5小时的人占比46%,1小时以内的占比31%,投入21-30小时的人凤毛麟角,仅有1%。可以看出,中国开发者在开源方面还有很大的进步空间。

开源技术开发状况

中国开发者的开源技术开发状况,却不如开源应用那般良好。

  • 六成开源项目无收入

有趣的是,调查报告显示,中国开发者从开源这件事上并没有获得很直接的利益和收入,65%开发者表示不曾在开源上获得收入,在开源上获得不错收入的仅占10%。

  • 很少参与开源项目

53%开发者表示很少参与开源项目,但企业不支付工资,纯粹靠热爱“发电”的志愿投入也不少,占比达到22%,而公司让全职参与的仅占8%。

  • Apache最受欢迎

开发者最喜欢的开源项目是Apache,25%开发者最喜欢Apache,Linux以24%“惜败”Apache,但差距已经很小了。另外,Vue.js、MySQL、Docker、TensorFlow等也是开发者最爱的开源项目。

正如顾问华为云高级产品经理 开源社理事、执行长庄表伟在点评中所说,无论是大数据、区块链、人工智能还是物联网领域,其中最为重要的、最受欢迎的技术,都是开源的。他猜测,国内开发者几乎100%都在使用一种或以上开源技术,但报告显示,有超过一半以上的开发者很少参与开源项目,这种开源状况实在是令人遗憾。他认为,虽然近年来已经有很大的发展,但是依然远远不够,只能呼吁有志诸君,继续努力了!

版权声明:《2019 - 2020 中国开发者调查报告》版权属于 CSDN,转载、摘编或利用其他方式使用本调查报告文字或观点应注明来源。