QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

六成开发者日编程不足 4 小时,半数认为学习新语言很困难

  • 2019-08-08
  • 本文字数:3048 字

    阅读完需:约 10 分钟

六成开发者日编程不足4小时,半数认为学习新语言很困难


调查机构 ActiveStates 今年调研了包括美国、中国在内的 88 个国家、1250 名开发者,得出了这份开发者调查报告。报告显示:超过 61% 的受访者每天花在编程上的时间不超过 4 小时,65% 的受访者表示不参与或维护开源项目,其中近一半 (49%) 的人将此归咎于时间不够。52% 的受访者认为增加或融入一门新语言非常困难。


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





本次调查的 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




InfoQ 希望可以完整展示出一个客观的国内开发者生态。所以,我们发起了国内版开发者调查问卷,如果您想了解国内开发者的群体画像,期待您的参加(传送门)。我们将在样本数足够以后,制作一份国内版开发者调查报告,以飨读者。


2019-08-08 09:5220614
用户头像
小智 让所有人认同的文字称不上表达

发布了 408 篇内容, 共 392.1 次阅读, 收获喜欢 1983 次。

关注

评论 3 条评论

发布
用户头像
开一天的会,然后晚上加班写代码🐶
2019-08-08 17:01
回复
用户头像
中国开发者的996呐喊感觉结束没多久,这份报告就说六成开发者日编程不足4小时,这应该信哪个呢~
2019-08-08 11:20
回复
这不很正常吗?工作两小时摸鱼4小时,就不说编程,其他工作都不见得有上得满的,说实话程序员相对于其他工作实在是太舒服了,996能工作4小时?看情况怕不是一天都在摸鱼,
2019-08-08 13:10
回复
该评论已删除
2019-08-08 13:53
回复
没有更多了
发现更多内容

小红书 x StarRocks:实现数据服务平台统一化,简化数据链路,提升高并发极速查询能力

StarRocks

数据库 数据分析 广告系统 小红书 StarRocks

网络攻防学习笔记 Day52

穿过生命散发芬芳

网络攻防 6月日更

剪视频一点都不难,多款超实用剪辑软件全方位评测!

懒得勤快

短视频 视频剪辑 视频制作

前端 JavaScript 复制粘贴的奥义——Clipboard 对象概述

编程三昧

JavaScript 大前端

管理者如何避免主观偏见

石云升

职场经验 管理经验 6月日更

批量把Excel数据自动录入系统

木头

自动录入 批量录入 自动填表

2021年,想要成为年薪百万的Java架构师需要掌握哪些技术?

Java架构师迁哥

RestTemplate打印日志的正确姿势

编号94530

spring 日志 log RestTemplate

☕【JVM技术探索】深入分析各种锁(锁膨胀)运作流程

洛神灬殇

JVM 锁升级 6月日更 锁分析

工作年限、成长路线、进阶技术。怎样才能成为架构师?

Linux服务器开发

Linux服务器开发 Linux后台开发 软件架构师 服务器架构师 C++架构师

唯品会:在 Flink 容器化与平台化上的建设实践

Apache Flink

flink

银行业运维指标体系建设实战

云智慧AIOps社区

智能运维

墨奇,以“一手之力” 证明你就是你

E科讯

Flink 和 Iceberg 如何解决数据入湖面临的挑战

Apache Flink

flink

5分钟速读之Rust权威指南(二十七)Rc<T>

wzx

rust

如何用视频云技术,搞一个爆红的 “反应视频” 项目?

阿里云CloudImagine

阿里云 RTC 英特尔 视频处理 视频制作

JavaScript 数组操作必须熟练运用的 10 个方法

devpoint

JavaScript array reduce 6月日更

1小时学会不打代码制作一个网页精美简历(1)

1_bit

大前端 低代码 iVX 低代码开发平台

多云部署又添新「云」,EMQ X Cloud 正式支持腾讯云部署

EMQ映云科技

阿里云 IoT 华为云 云平台 #腾讯云

机器数及特点

若尘

计算机组成原理 6月日更

58集团 x StarRocks:全面升级数据分析能力,满足多场景业务分析需求

StarRocks

数据库 数据分析 OLAP 58同城 StarRocks

北京多部门联合整治违规应用:过度收集用户信息该重罚

石头IT视角

Redis入门四:数据持久化

打工人!

redis redis持久化 6月日更

为什么大家都在用WebRTC?

anyRTC开发者

音视频 WebRTC 语音通话 视频通讯

【Linux】使用 systemd 管理 frp 服务

赖猫

Linux 后端

网络态势感知是什么?

郑州埃文科技

腾讯安全姬生利:《数据安全法》下,云上数据安全最佳实践

腾讯安全云鼎实验室

数据安全 云安全 数据安全法

基于jira的需求交付效率统计

好孩子

Jira

网络为本,博睿数据NPMD用20%的投入实现80%的功能

博睿数据

博睿数据 数据链DNA NPMD

ROS CDK | 云上资源自动化部署新模式

郭旭东

阿里云 ROS 基础设施即代码 IaC

云开发是啥?看看它在编程导航项目的实践

程序员鱼皮

Java JavaScript 大前端 后端 云开发

六成开发者日编程不足4小时,半数认为学习新语言很困难_AICon_赵钰莹_InfoQ精选文章