分享到: 分享到QQ  分享到Twitter

作者: kideny    访问次数: 1139 创建时间: 2019-08-09 02:31:50 更新时间: 2024-04-20 11:46:24

nfoQ 对该调查问卷进行了编译、解读,希望完整展示出一个客观的开发者生态。与此同时,我们发起了国内版开发者调查问卷,如果您想了解国内开发者的群体画像,期待您的参加。我们将在样本数足够以后,制作一份国内版开发者调查报告,以飨读者。


本次调查的 1250 个样本数来自美国、加拿大、中国、德国、俄罗斯、印度等在内的 88 个国家,2018 年的调查样本则来自 92 个国家。参与人数最多的国家是美国,其次为加拿大、德国,中国也有部分开发者参与了本次调查问卷。

受访者中,年龄分布最大的区间是 41-45 岁,年龄小于 25 岁的部分只占 7.76%(97 人),30 岁以上的开发者比例高达 84%。不难看出,国外开发者的年龄普遍比较大,这一方面是由于国外开发者接触编程比较早,另一方面也显示出国外的工作环境对大龄程序员相对较为友好。

工作时间安排

在 1250 份调查样本中,38.8% 的受访者每天只花 2-4 小时编程。这与 2018 年的调查结果相似,37% 的受访者每天花 2-4 小时编程。相比之下,27.92% 的受访者每天花 5-7 小时编程,而 2018 年的调查结果显示,31% 的受访者每天花 5-7 小时编程。

最让人惊讶的是,2019 年总计有多达 61.52% 的受访者花 4 小时甚至更少的时间编程,而在 2018 年,只有 51% 的受访者花 4 小时或更少的时间编程。10.56% 的受访者花 8 小时或更长时间编程,而 2018 年这一比例为 19%,几乎减少了一半。

开发者们花在写代码的时间上越来越少,那么时间都去哪儿了呢?

44% 的受访者表示,他们必须把时间花在各种各样的活动上,包括会议、测试、维护,甚至是社交活动。花费时间最多的单一活动是软件设计 / 架构,占 11.36%,其次是参加 standups / 会议,占 8.24%。

开发环境设置的频率与时间

调查中,接近 69% 的受访者一年或者一个季度创建一次新的开发环境,只有约超过 31% 的人每个季度创建一到两个新的开发环境。此外,43.68% 的开发者创建一个新的开发环境需要花 2-4 个小时,28.72% 的人只需不到一小时,27.6% 的人需要花费 5 个小时甚至更长时间。

从上面的问题可以看出,如果每年只需要不到一小时的时间配置一个新的开发环境,那么对生产力的影响可以忽略不计。与此相反,有人每月都要建立新的开发环境,并且花费 18 个小时来完成。也就是说,一年 2000 个小时的工作时间里,设置开发环境就可能占到总开发时间的 10%。

新软件项目的频率

总体而言,61.4% 的受访者至少每个季度启动一次新项目,这一结果与 2018 年的 61% 几乎相同。然而,2019 年的调查结果显示,每周开工一次的受访者比例从 12% 下降到了 8.24%,每季度开工一次的受访者比例从 26% 上升到了 29.2%。虽然约 32% 的受访者每月或更频繁地启动新项目,但调查显示,只有约 14% 的受访者为该项目构建新的开发环境。

花在 issue 上的时间

加权结果显示,开发者的大部分时间花在了与安全性或代码相关的问题上,花费在构建库或包、管理依赖关系相关问题上的时间几乎相等,分别是 1.77 和 1.72。受访者只花了 70% 的时间致力于解决许可证相关问题。

72.81% 的受访者表示,几乎从未花时间研究过开源许可证。61.67% 的受访者将部分时间花在管理依赖关系上。应该指出的是,与去年相比,这一结果有显著下降,当时 75% 的受访者表示,部分时间花在了管理依赖关系和开发工具上。

此外,ActiveState 询问了受访者在构建库或包时遇到问题的频率。2018 年,71% 的受访者在构建库或包的过程中遇到了问题。而今年仅有 61.19% 的受访者表示在这项工作上花费了不少时间。

开发语言

当受访者被问及目前正在使用哪种编程语言时,前三种最流行的语言是 SQL(80.4%)Javascript(76.8%)和 Python(72.08%)。而在近日 Newly 联合创始人 Indrek Lasn 的预测中, Rust将成为接下来两年的主流编程语言,依据则是 Rust 连续三年在 StackOverflow 调查中成为最受欢迎的语言,目前很多学校也开始考虑在授课中增加该语言,但就这份榜单而言,仅有 8.4% 的受访者在使用 Rust,排名接近倒数,很难让人相信这会在接下来两年成为主流。

在专为科技专业人士提供见解和分析的 Dice Insights 网站看来,Ruby、Haskell、Objective-C、R 及 Perl 五种编程语言可能会逐渐走向衰落,而在这份榜单中,目前正在使用 Perl、Ruby 和 R 语言的受访者不在少数,不清楚这部分使用者是否考虑在未来更换选择。

(点击这里,参与#哪种编程语言注定会走向衰败?#话题讨论。)

满意度

Python 是第三大受访者采用最多的编程语言,同时也收获了最高满意度,76.58%的受访者认为 Python 基本是让人满意的,这相比 2018 年的结果有显著增长,当时只有 68%的受访者表示基本满意。

作为采用度最高的语言,对 SQL 感到满意的受访者达 66.09%,排名第四。JavaScript 的采用度虽然排名第二,但在满意度榜单仅排到第 10 位,在《Cost of JavaScript In 2018》一书中,作者指出,如果一个交互式网站经常混合使用 CSS、JavaScript、图像和字体,那么“JavaScript 永远是开销最大的那一部分”。

事实上,JavaScript 的快速处理意味着更快地下载、解析、编译和执行脚本。脚本下载时间主要由脚本大小和网络性能决定,而解析和编译时间则是由 JavaScript 引擎中使用的技术和设备性能(CPU 和内存性能)所决定,执行时间明显受到 CPU 制约。这或许是造成 JavaScript 满意度不高的原因之一,但近几年已经有不少围绕此问题的解决方案和讨论。

对于是否考虑更换编程语言,尤其是满意度较低的选择,大部分受访者依旧不想更换。换句话说,添加新语言的痛苦超过了使用该工具的好处。当痛苦大于收益时,这件事情的性价比就被降低了。

设置,部署,运行时

挑战

为了更好地提炼开发人员目前面临的挑战,榜单列举了开发时可能遇到的问题,比如添加新的编程语言、开源代码的安全问题、依赖、开源代码的许可问题、复用性等。其中,添加一门新编程语言的难度连续两年位居榜首,开源代码的安全问题紧随其后,54% 的受访者认为较为困难。

构建问题

不难看出,安全性和稳定性是受访者考虑最多的问题,分别为 41.43%和 40.49%,这个数字相比去年有了明显提升,说明过去一年并没有出现非常好的方法解决这些问题,复杂程度还在持续上升,急需好的解决方案出现。

重要性

针对包质量(安全性、更新等问题),共享环境配置的简易性,特定包配置的开源语言构建与许可信息等问题,前两者在受访者心目中的重要程度非常接近,分别为 58.58%和 55.95%。

开源

近年来,开源技术得到越来越多的重视,国内开发者也在积极参与开源社区的建设。根据调查,受访者中的 34.88% 对开源社区有所贡献,而在影响贡献的主要因素中,时间的占比接近 50%,远远超过其他因素。换句话说,大部分受访者在考虑是否参与开源时主要是看有没有时间,难道大部分开发者受限于 996 的工作状态而没有精力做其他工作,比如贡献开源吗?

原报告下载链接:

https://www.activestate.com/wp-content/uploads/2019/05/ActiveState-Developer-Survey-2019-Open-Source-Runtime-Pains.pdf

年度最有价值文章

季度最有价值文章

月度最有价值文章

帖子投票

名称 是否有价值
kideny

投票统计

是否原创: 100 %

100 % Complete (success)

是否有价值: 100 %

100% Complete

是否有素质: 100 %

100% Complete (warning)

是否合法: 100 %

100% Complete

   群组工具

   外部链接