2020最新软件开发状况报告

  • 格式:pdf
  • 大小:1.64 MB
  • 文档页数:40

2020最新软件开发状况报告这篇报告将重点介绍六大方面的主题,其中每个主题部分都包含可视化图表,通过数据为开发人员社区提供对未来趋势的分析和见解。

1、编程语言社区:通常编程语言是构成强力社区的核心,但也是最富争议的主题。

该报告统计了活跃在各种主流编程语言上的软件开发人员数量,数据覆盖到了全球所有类型的程序员。

2、为开源软件做贡献:在开发人员的世界中,开源软件无处不在,但并非每个开发人员都是开源人员。

该报告探讨了哪些开发人员为开源软件做过贡献,他们愿意做贡献的原因,以及他们希望从各个公司获得哪些开源支持。

3、开发运维的参与和采用:开发运维改变了软件构建的方式。

但是,并非所有的开发人员和组织都经历了这种文化转变。

该报告统计了有多少开发人员在使用CI/CD工具(这是开发运维流程的核心技术)。

此外,还分析了哪些开发人员正在使用这些工具、他们的工作经验、所在公司规模以及技术背景。

4、机器学习开发人员通过哪些方式运行代码?对于某些数据科学家和机器学习开发人员而言,他们的工作并不仅仅是纯粹的模型开发。

实际上,他们的工作重点已经转移到与推理性能、扩展、负载平衡等问题相关的实际生产场景。

这些都需要计算能力,而在过去这一直是机器学习开发人员面临的巨大难题。

该报告将探讨机器学习开发人员通过何种方式运行应用程序或项目的代码,以及他们应用机器学习/ AI的方式有何不同,他们的使用目的是什么,此外他们使用的算法和框架又有哪些。

5、增强现实与虚拟现实:增强现实(A R)和虚拟现实(VR)是两个不断发展的领域,且随着近年来技术的成熟以及越来越多的设备支持A R 和VR功能而迅速普及。

该报告将探讨A R和VR开发人员以及非开发人员的概况,重点介绍他们在其他领域的参与度,他们的技术和设备选择以及他们构建的产品。

6、新兴技术:该报告从新兴技术的发展出发,讨论过去一年中哪些技术的普及程度有所提高或下降。

要点总结:•JavaScript仍然是目前流行度最高的编程语言,全球超过1200万开发人员都在使用JavaScript。

•2018年Python净增了220万开发人员,并且在受欢迎程度方面超过Java。

如今,从整体来看Python拥有第二大编程语言社区。

•Kotlin是增长最快的语言社区。

在过去的两年中,它的规模几乎翻了一番。

•五分之三的开发人员曾为开源软件贡献代码。

•开发人员最有动力为开源项目做出贡献,这是因为他们可以借此提高编程技术力(29%),而且他们相信开源带来的好处(26%)。

•将近一半的开源贡献者都希望各大公司能够支持开源社区并为之做出贡献。

•使用CI / CD工具的开发人员成为专业开发人员的比例要高出20%。

•58%的使用CI / CD工具的开发人员在员工超过10人的公司任职。

•尽管业余人员不如专业的机器学习开发人员那般熟悉云计算基础架构,但是他们在C PU以外的硬件上运行代码的比例更高。

•使用大数据和深度学习框架的机器学习开发人员更倾向于在混合云和多个云上部署他们的代码。

•从事数据提取的机器学习开发人员更倾向于在私有云和本地服务器上运行代码,而从事模型部署的机器学习开发人员更倾向于使用公共云来部署机器学习解决方案。

•增强现实(A R)和虚拟现实(VR)的工作人员大多拥有广泛的兴趣和技术爱好。

•大多数A R和VR爱好者(57%)都在兼任其他领域(至少一个)的专业工作。

•22%的A R和VR非开发人员在学习编程,他们最喜爱的编程语言包括Java、C++和C#。

•大多数开发人员(59%)的工作都涉及开发运维,其中27%目前正在从事涉及开发运维的项目。

•在过去的12个月中,雾计算/边缘计算在参与度和采用率方面呈现了最高的增长。

1.编程语言社区编程语言的选择对开发人员来说非常重要,因为开发人员都希望自己的技术力能够跟得上市场的最新需求。

编程语言是最富争议性的热门话题,也是一部分强大的开发人员社区的核心。

另外,编程语言对于工具的开发商也至关重要,因为他们需要确保提供最有用的S D K。

评估某种编程语言的使用范围非常困难。

Tiobe、Redmonk、Stack Overflow的年度调查以及Github Octoverse都是不错的数据来源,但在大多数情况下他们只提供了语言之间的相对比较,因此我们无法了解各个社区的规模。

此外,常见的调查报告可能会因为地理区域产生偏见,或偏向软件开发的某些领域,或偏向开源开发人员。

该报告统计了活跃在各种主流编程语言上的软件开发人员数量,数据覆盖到了全球所有类型的程序员。

报告主要基于两个数据。

首先,对全球软件开发人员的数量进行独立估算。

预计到2019年底,全球活跃的软件开发人员高达2040万。

其次,通过每六个月对开发人员进行一次大规模、低偏差的调查,该报告收集了十个开发领域中开发人员使用编程语言的情况,并总结出了哪些人在何种情况下使用每种编程语言的可靠信息。

过去两年中JavaScript、Python以及Kotlin的增长速度最快。

图:2019年第四季度全球活跃的软件开发人员目前,JavaScript仍然是最受欢迎的编程语言,全球约有1200多万开发人员在使用这种编程语言。

而JavaScript社区也是增长最快的社区之一。

从2017年第四季度至2019年第四季度期间,超过300万的发人员加入了该社区,这是绝对数量增长最快的编程语言。

不仅新手开发人员认为JavaScript的入门非常简单,而且经验丰富的开发人员也愿意尝试这种技术。

因此,如今超过半数的W eb应用程序、云服务或第三方生态系统的扩展开发人员都在使用JavaScript。

还有两种因快速持续增长脱颖而出的编程语言:Python和Java。

在过去两年中,两者新增的开发人员加起来高达400万。

2018年,Python新增了220万开发人员,并且在受欢迎程度方面超过了Java。

尽管2019年Python的增长没有那么迅速,但从整体来看Python仍然是第二大编程语言。

其流行度的增加主要来源于数据科学和机器学习的兴起。

最令人惊讶的是75%的机器学习开发人员和数据科学家都在使用Python,而只有不足20%的人在使用R。

Java在移动生态系统(A ndroid应用程序)和后端开发中非常流行。

尽管Java已有二十多年的历史了,但其在开发人员中的吸引力一直在稳定增长。

自2017年底以来,每年都有超过50万的开发人员加入Java 社区,如今Java开发人员总规模已超过800万。

从百分比来看,增长最快的语言社区是Kotlin。

在过去两年中,Kotlin 的规模几乎翻了一番,从2017年第四季度的110万开发人员增长到2019年第四季度的200万。

鉴于Goo g le推荐Kotlin作为A ndroid开发的首选语言,预期这种增长会持续下去,并且Kotlin会成为移动开发的核心语言。

就社区规模而言,C#和P H P非常接近,分别拥有580万和570万活跃的软件开发人员。

在过去的一年中,两者似乎都停止了增长。

详细来看的话,2019年C#损失了大约100万开发人员。

C#在A R / VR(H ololens)以及游戏开发人员的生态系统中占有一席之地,但其在桌面开发的优势已无可挽回,可能是由于基于W eb技术的跨平台工具的出现。

P H P的整体采用率并未出现明显的下降趋势,数据表明,该语言在W eb开发人员中的流行度逐渐没落(尽管它仍然是仅次于JavaScript的第二大广泛采用的编程语言)。

2018年,使用C和C++的开发人员社区增长了15%(从550万增长到630万),但此后规模并未增加。

到2019年底,约有540万开发人员使用C++,而使用C的开发人员约为320万。

这两种语言在物联网项目中(对于设备级和应用程序级编程而言)都很重要,因为在这些项目中性能和底层访问至关重要。

其他相对小众编程语言的开发人员数量未出现明显的增长。

苹果社区非常重视Swift和Ob j ective-C,然而使用这两种编程语言的开发人员数量却在下降。

Ruby和L ua的开发人员似乎正在大面积流失。

最后,Go 和Rust的社区仍然相对较小(不到150万开发人员)。

2.为开源软件做贡献开源软件是开发世界的重中之重。

不仅每种开发工具都有相应的开源方案,而且某些领域完全由开源产品主导。

此外,开源社区的协作本质体现了共享代码、知识和最佳实践的价值,而这是开发人员文化的核心。

在开发人员的世界中,开源软件无处不在,但并非每个开发人员都是开源人员。

该报告探讨了哪些开发人员为开源软件做过贡献,他们愿意做贡献的原因,以及他们希望从各个公司获得哪些开源支持。

图:59%的开发人员曾为开源软件做贡献59%这个数字本身就让很多人非常吃惊,这代表了在数百万开发人员中,只有五分之二没有为开源软件做过贡献。

下面让我们来看看为开源做出过贡献的开发人员与那些没有做出贡献的开发人员之间有什么区别。

总体来看,开源贡献者比非贡献者更年轻。

为开源做出过贡献的开发人员中,三分之一(33%)的人不到24岁,而非贡献者中只有26%。

但并不是说他们都是没有经验的程序员。

41%的开源贡献者拥有1-5年的开发经验,甚至比非贡献者高4%。

然而出人意料的是,开源贡献者不一定是专业人员。

实际上,他们与非贡献者一样都是业余爱好者。

即便是非软件行业的从业者也可以参与开源软件的开发,并为之做出贡献。

开源贡献者涉猎多个开发领域的比例高于非贡献者。

但是,开源贡献者更倾向于参与新兴领域,例如机器学习/AI以及A R/ VR,这些领域的创新主要由开源工具推动。

最后,我们可以通过开源托管网站Github上的活动,洞悉开发人员对开源软件做出贡献的可能性。

这种关联性非常明显。

在非贡献者之中,有三分之二(67%)没有个人公开的Github代码库,而近一半的贡献者(48%)拥有两个或多个公共代码库。

我们通过Stack Overflow也发现了相似的关联性。

非贡献者中不使用该网站的比例更高,或虽然访问该网站却没有账号。

另一方面,在开源贡献者中,至少获得了一枚奖章的开发人员是非贡献者的两倍(30%与15%)。

从事开源项目有助于推动开发人员积极地通过问答网站与同行互动。

以上我们分析了为开源软件项目做出了贡献的开发人员。

下面我们来深入探讨这些开发人员为开源做贡献的原因。

三分之一的开发人员致力于开源软件是为了提高编程技术推动开发人员为开源项目做出贡献的最大动力在于提高编程技术(29%),以及相信开源带来的好处(26%)。

此外,22%的开发人员为开源软件做贡献是因为觉得开源项目很有趣,或者是为了解决开源软件项目现有的问题,例如修复bu g或创建新功能。

相比之下,金钱上的资助是最不重要的动机:只有3%的开发人员可以通过开源项目的工作而获得报酬。