软件行业 最新趋势

1、编程语言 区:通常编程语言是构成强力 区的核心,但也是最富争议的主题。该 告统计了活跃在各种主流编程语言上的软件开发人员数量,数据覆盖到了全球所有类型的程序员。

2、****为开源软件做贡献:在开发人员的世界中,开源软件无处不在,但并非每个开发人员都是开源人员。该 告探讨了哪些开发人员为开源软件做过贡献,他们愿意做贡献的原因,以及他们希望从各个公司获得哪些开源支持。

3、开发运维的参与和采用:开发运维改变了软件构建的方式。但是,并非所有的开发人员和组织都经历了这种文化转变。该 告统计了有多少开发人员在使用CI/CD工具(这是开发运维流程的核心技术)。此外,还分析了哪些开发人员正在使用这些工具、他们的工作经验、所在公司规模以及技术背景。

4、机器学习开发人员通过哪些方式运行代码/strong>对于某些数据科学家和机器学习开发人员而言,他们的工作并不仅仅是纯粹的模型开发。实际上,他们的工作重点已经转移到与推理性能、扩展、负载平衡等问题相关的实际生产场景。这些都需要计算能力,而在过去这一直是机器学习开发人员面临的巨大难题。该 告将探讨机器学习开发人员通过何种方式运行应用程序或项目的代码,以及他们应用机器学习/ AI的方式有何不同,他们的使用目的是什么,此外他们使用的算法和框架又有哪些。

5、增强现实与虚拟现实:增强现实(AR)和虚拟现实(VR)是两个不断发展的领域,且随着近年来技术的成熟以及越来越多的设备支持AR和VR功能而迅速普及。该 告将探讨AR和VR开发人员以及非开发人员的概况,重点介绍他们在其他领域的参与度,他们的技术和设备选择以及他们构建的产品。

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

要点总结:

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

2018年Python净增了220万开发人员,并且在受欢迎程度方面超过Java。如今,从整体来看Python拥有第二大编程语言 区。

Kotlin是增长最快的语言 区。在过去的两年中,它的规模几乎翻了一番。

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

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

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

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

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

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

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

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

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

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

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

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

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

编程语言 区

编程语言的选择对开发人员来说非常重要,因为开发人员都希望自己的技术力能够跟得上市场的最新需求。编程语言是最富争议性的热门话题,也是一部分强大的开发人员 区的核心。另外,编程语言对于工具的开发商也至关重要,因为他们需要确保提供最有用的SDK。

该 告统计了活跃在各种主流编程语言上的软件开发人员数量,数据覆盖到了全球所有类型的程序员。 告主要基于两个数据。首先,对全球软件开发人员的数量进行独立估算。预计到2019年底,全球活跃的软件开发人员高达2040万。其次,通过每六个月对开发人员进行一次大规模、低偏差的调查,该 告收集了十个开发领域中开发人员使用编程语言的情况,并总结出了哪些人在何种情况下使用每种编程语言的可靠信息。

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

图:59%的开发人员曾为开源软件做贡献

59%这个数字本身就让很多人非常吃惊,这代表了在数百万开发人员中,只有五分之二没有为开源软件做过贡献。下面让我们来看看为开源做出过贡献的开发人员与那些没有做出贡献的开发人员之间有什么区别。

总体来看,开源贡献者比非贡献者更年轻。为开源做出过贡献的开发人员中,三分之一(33%)的人不到24岁,而非贡献者中只有26%。但并不是说他们都是没有经验的程序员。41%的开源贡献者拥有1-5年的开发经验,甚至比非贡献者高4%。

然而出人意料的是,开源贡献者不一定是专业人员。实际上,他们与非贡献者一样都是业余爱好者。即便是非软件行业的从业者也可以参与开源软件的开发,并为之做出贡献。

开源贡献者涉猎多个开发领域的比例高于非贡献者。但是,开源贡献者更倾向于参与新兴领域,例如机器学习/AI以及AR / VR,这些领域的创新主要由开源工具推动。

最后,我们可以通过开源托管 站Github上的活动,洞悉开发人员对开源软件做出贡献的可能性。这种关联性非常明显。在非贡献者之中,有三分之二(67%)没有个人公开的Github代码库,而近一半的贡献者(48%)拥有两个或多个公共代码库。我们通过Stack Overflow也发现了相似的关联性。非贡献者中不使用该 站的比例更高,或虽然访问该 站却没有账 。另一方面,在开源贡献者中,至少获得了一枚奖章的开发人员是非贡献者的两倍(30%与15%)。从事开源项目有助于推动开发人员积极地通过问答 站与同行互动。

以上我们分析了为开源软件项目做出了贡献的开发人员。下面我们来深入探讨这些开发人员为开源做贡献的原因。

三分之一的开发人员致力于开源软件是为了提高编程技术

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

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

相比之下,金钱上的资助是最不重要的动机:只有3%的开发人员可以通过开源项目的工作而获得 酬。事实证明,开发人员更倾向于通过开源项目建立自己的口碑(14%)或培养人际关系(11%),而不是直接获得经济收益。此外,与在其他原因的推动下为开源做贡献的开发人员相比,以获得 酬为目标的开发人员认为开源有趣的比例低了20%。通过开源获得 酬的开发人员在意识形态上也不太相信开源是自由之源。

通常,开发人员为开源做贡献的动机并不唯一,他们往往会受到多种因素的激励。例如,在为开源代码做出贡献的目的是为了提高编程技术的开发人员之中,有一半的人也认为这项工作很有趣;同时为了培养人际关系的贡献者之中,56%的人还认为这项工作让他们有归属感。

图:移动、桌面和Web开发人员使用CI/CD的情况

CI / CD用户的详细分析

与未使用CI / CD的开发人员相比,使用CI / CD的开发人员可以提供更多有关为什么使用率达不到预期的见解。通常,使用CI / CD工具的开发人员都是在拥有较大开发团队的公司里工作的专业人员,与未使用CI / CD的开发人员相比,他们的经验更丰富。

最近的一次调查数据显示,与没有使用CI / CD工具的开发人员相比,使用CI / CD工具的开发人员是专业开发人员的比例更高——就Web开发人员而言,使用CI / CD的人员是专业开发人员的比例比不使用CI/CD工具的人高20%。对于移动和桌面开发人员而言,这种差异分别为22%和18%。

图:软件开发人员就职的公司规模

采用CI/CD的开发运维规模

与未使用CI/CD的开发人员相比,使用CI / CD的开发人员更有经验。在使用CI / CD的Web开发人员中,44%拥有6年以上的经验,而没有使用CI / CD的开发人员中只有28%。在桌面开发人员中,我们看到了相同的趋势——使用CI / CD的开发人员中49%拥有6年以上的工作经验。相比之下,只有34%的未使用CI/CD的开发人员拥有丰富的经验。使用CI / CD的移动开发人员经验略少,但总体趋势依然相同,49%的使用CI / CD的开发人员拥有3年以上的经验,比未使用CI / CD的开发人员高17%。

图:开发运维专家还承担了哪些工作/p>

在深入研究开发运维专家的技术栈之后我们还发现,除了开发运维专家本身之外,许多人还承担着多项工作。如下表所示,我们可以看到这些开发人员承担的各色职责。开发运维专家中23%的人既是程序员又是系统管理员,27%是程序员和架构师。拥有开发技术力以及理解管理和设计系统是引领开发运维策略的基本要求。

图:机器学习开发人员将代码部署到了何处

使用大数据和深度学习框架的开发人员更喜欢在混合以及多云环境中部署代码

从事ML / AI研究的开发人员在本地计算机上运行代码的比例(60%)超出了其他ML开发人员(54%),主要是因为他们大多需要使用较小的数据集。另一方面,负责部署由其他团队成员构建的模型的开发人员或负责构建机器学习框架的开发人员更倾向于在云托管解决方案上运行代码。

ML / AI或数据科学方面的老师使用云解决方案的比例超过了一般人,更具体地说是混合云或多云。应当指出的是,在讲授ML / AI的开发人员中,有很大一部分还以不同的方式参与了数据科学和ML / AI。 例如,41%的人使用第三方API,而37%的人在应用或项目中训练和部署ML算法。他们不一定将混合和多云架构作为教学活动的一部分。

ML开发人员使用的ML框架或库的类型是在云计算体系结构上运行代码的另一个体现。当前正在使用大数据框架(例如Hadoop,尤其是Apache Spark)的开发人员更倾向于使用公共云和混合云。Spark开发人员还会大量使用私有云来部署他们的代码(40%,而其他ML开发人员为31%),或使用本地服务器(36%,而其他ML开发人员为30%)。

相比使用其他机器学习框架/库(例如流行的Scikit-learn python库)的开发人员,深度学习开发人员更倾向于在云实例或本地服务器上运行代码。

然而,使用Keras和TensorFlow(最流行、最易访问的python深度学习库)的开发人员与使用Torch、DeepLearning4j或Caffe的开发人员之间存在明显的区别。前者大多喜欢在他们的笔记本电脑或台式机上运行代码,而后者则倾向于使用混合和多云、本地服务器和大型机。这些差异主要是由于开发人员在机器学习开发方面的经验造成的。例如,只有19%的TensorFlow用户拥有3年以上的经验,而Torch和DeepLearning4j开发人员拥有3年以上经验的比例分别为25%和35%。Torch非常适合关心效率的ML开发人员,因为它拥有简单快速的脚本语言,以及LuaJIT和底层C / CUDA的实现。

ML开发人员在语音识别、 络安全、机器人移动和生物工程等领域使用硬件体系结构的比例较高。这些开发人员更倾向于使用生成对抗 络等高级算法,而且他们需要处理大型数据集,因此需要额外的计算机功能。同样,当前正在使用C++机器学习库的开发人员也会大量使用除CPU(38%,其他开发人员为31%)和大型机以外的硬件体系结构,大概是因为他们非常在意性能。

最后,ML开发人员运行代码的方式与他们从事机器学习/数据科学哪个阶段的工作之间存在明显的联系。参与数据提取的ML开发人员更倾向于在私有云和本地服务器上运行代码,而参与模型部署的ML开发人员则更多地使用公共云来部署机器学习解决方案。31%的开发人员参与了机器学习工作流程的所有阶段(端到端),而未能参与全过程的开发人员为26%。他们也更倾向于在公共云和混合云上运行代码。

相比之下,参与数据可视化或数据探索的开发人员倾向于在本地环境中运行其代码(分别为62%和60%),甚至比参与数据科学工作流其他阶段的ML开发人员(54%)还要多。

增强现实与虚拟现实

增强现实(AR)和虚拟现实(VR)实现了数十年来人类的想象。从《星际迷航》中的Holodeck到《钢铁侠》中的抬头显示(HUD),AR和VR就是未来的代名词。然而,最近AR和VR处理已在智能手机上变得司空见惯,而且Oculus和Sony等公司已经发布了消费级的头盔。该 告分析了AR和VR生态系统中的趋势,重点关注活跃于该领域的开发人员与非开发人员之间的主要差异。

AR和VR是最小的软件开发领域

单独来看,增强现实和虚拟现实仍然是最小的软件领域(相对于移动、桌面、Web、游戏、后端、工业物联 、消费电子、数据科学和机器学习来说)。即便将二者结合起来,AR和VR(AR / VR)也仅比第二小的消费电子产品领域略大。仅有0.4%只从事AR或只从事VR领域的工作,其余的开发人员都在其他开发领域任职。

在9%的从事AR或VR领域工作的人中,将近一半(46%)的人同时涉足AR和VR。这表明这两个领域的工作所需的技术力有很大一部分是重复的。与AR(24%)相比,仅涉足VR(31%)的人更多。AR的发展状况不如VR,而且AR存在一些技术上的难题仍需解决,这也意味着AR产品的市场较小,因此技术也不够成熟。结果表明,与VR相比,AR的门槛较高,因此涉足的人数更少。

图:从事AR和VR工作的人员常常身兼多职

与仅从事AR工作的非开发人员相比,仅从事VR或从事VR和AR的工作人员担任非开发工作的比例是两倍以上。这表明非开发人员倾向于以某种身份从事VR工作。

深入研究角色,我们看到49%的AR从业者同时兼任程序员或软件工程师的工作,而VR从业者以及同时从事VR和AR工作的人分别只有37%和32%。许多AR从业人员也参与了Web和移动开发以及机器学习的工作。这表明,这些程序员对AR这项技术很感兴趣,希望通过使用最先进的技术挑战自己或在项目中实现AR。

另一方面,VR从业人员以及参与AR和VR的人员成为游戏设计师或产品经理的比例是AR从业人员的两倍以上。这些职责的普及反映了游戏市场对VR的迅速接受——从新兴技术到创收。

AR和VR开发人员中,使用3D动画软件的人与使用IDE的人一样多

虽然从事VR工作的开发人员和非开发人员使用的部分技术相同,但是这些技术无法同时吸引这两种人。Oculus技术套件是最适合开发人员和非开发人员使用的平台,35%的VR从业人员都在使用该平台。Playstation VR、Windows 10 Mixed Reality和Google Daydream都吸引了大量的非开发人员(分别为36%、28%和26%),但未能吸引VR开发人员。这种情况对于愿意扩大受众的技术供应商来说是一个很好的机会,因为统一的技术栈可以通过统一其他工具和平台提供巨大的优势,简化培训需求,并减少使用的工具种类。

图:与非开发人员相比,AR软件工具对AR开发人员的吸引力更大

超过半数的开发人员使用游戏引擎,而48%的开发人员使用3D建模和渲染软件。这些技术在AR / VR开发人员中的广泛采用证明了他们提供的抽象技术可带来巨大的效率提升,而且很适合AR(尤其是VR)开发游戏。

我们看到,同时兼任开发人员和非开发人员角色(混合开发人员)的从业人员在AR和VR工作中占了非常大的比例,而且这一点也体现在了AR和VR开发人员使用的技术中——3D动画软件(39%)和设计工具(30%)。事实上,使用3D动画软件的AR和VR开发人员甚至与使用IDE的开发人员几乎一样多。

使用后端即服务、ML API和应用商店分析的AR和VR开发人员不足15%。AR和VR开发人员使用应用商店分析的比例比游戏开发人员低3%,比移动开发人员低10%。这表明AR / VR开发人员比较注重基础技术,而并非通过应用的营销渠道获取最大价值。

图:非开发人员正在积极学习Java、C++和C#

游戏是开发人员和非开发人员最喜欢的应用类别

AR和VR的从业者主要致力于创建娱乐和服务产品,但开发人员和非开发人员的侧重点有所不同。77%的AR / VR开发人员在构建服务类的产品(例如业务物流产品),而只有67%的非开发人员在构建这类的产品。

AR和VR从业者最喜欢的应用类别是游戏和玩具,其中52%的开发人员和44%的非开发人员在开发这个类别的产品。对于其他娱乐产品(如移动和动画),情况有所不同,其中有65%的非开发人员在开发此类应用,而只有47%的开发人员在从事此类工作。这表明开发人员在利用他们的编程经验通过AR和VR来尝试和创建游戏,而非开发人员则受到了其他用例的启发。

无论是AR / VR开发人员和非开发人员都对工业应用(例如制造和建筑)不太感兴趣,但是与非开发人员相比,开发人员在此类别中创建产品的比例更大。随着AR和VR的成熟和稳定,商业应用的可行性增大,我们有望在开发人员和非开发人员中看到工业领域的进一步创新,但是构建娱乐应用的吸引力仍然很大。

图:开发人员大多涉足开发运维

图:开发运维和雾计算/边缘计算的采用率和参与度同比增长最大

机器人技术和计算机视觉的参与度分别达到了54%和53%,但是这种参与并不等价于采用率。

目前,13%参与了该领域的开发人员正在使用计算机视觉,另有25%的人对此有所了解。另一方面,8%参与了该领域的开发人员正在积极使用机器人技术,另有21%的人对此有所了解。机器人技术的门槛比计算机视觉技术高很多,这说明了采用率的差异,但机器人技术也具有很强的文化意义,并且是技术领域中令人兴奋的领域,这就说明了为什么大量开发人员被动地参与其中。尽管如此,在过去的12个月中,参与机器人技术的人员比例还是减少了2%,而计算机视觉的参与度却增加了2%。

量子计算和无人驾驶汽车也是如此。这两种技术都吸引了开发人员的高度参与,其中46%的人感兴趣、正在学习或正在研究这些技术,但这种参与尚未转化为采用——仅有5%的开发人员正在从事自动驾驶汽车的开发,而在量子计算中该比例为4%。这些新兴技术仍处于发展阶段,但进展很快,随着技术的发展,采用率一定会上升。在过去的12个月中,量子计算的采用率提高了2%;而对于无人驾驶汽车技术,在过去6个月的使用率提高了1%。

在那些开发人员参与度不高的技术中,不同技术的采用率也存在许多差异。雾计算/边缘计算(32%)、加密货币(41%)和5G(42%)都在在开发人员参与度方面排在最后,但背后的原因却不尽相同。

2018年底比特币热潮带来的宣传浪潮促成了目前约2,500-3,000种加密货币的存在。相对较高的参与开发人员(35%)正在学习或正在研究加密货币,但是,只有41%的开发人员参与其中,这表明加密货币的疲软才刚刚开始。事实上,参与度在过去六个月中下降了1%(尽管去年有所增加)。更多的开发人员正在参与加密货币以外的区块链应用。我们看到45%的开发人员正在参与其他区块链应用,其中32%的开发人员在积极地学习或投身于该技术。

许多因素决定了技术从兴起到采用的过程,其中最重要的是商业实用性。开发运维和微型应用之类的技术可通过提高效率或打开新市场等方式立刻提供显著的价值,因此,它们理所当然地获得了开发人员的高度采用率和参与度。同样,5G和雾计算 / 边缘计算将迅速证明其价值和投资回 ,然后快速引发商业采用。而那些更雄心勃勃长期发展的技术(例如量子计算和机器人技术)的门槛很高,其商业化还有很长的路要走。尽管如此,它们依然吸引了各地开发人员,尽管许多人还没有参与涉及的技能或资源,但是当这些技术平民化时,将会有大量热心的开发人员积极参与

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月2日
下一篇 2020年10月2日

相关推荐