写点什么

六成开发者日编程不足 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:5220997
用户头像
小智 让所有人认同的文字称不上表达

发布了 410 篇内容, 共 409.7 次阅读, 收获喜欢 1986 次。

关注

评论 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
回复
没有更多了
发现更多内容

消息中间件最强笔记大全:MQ+Kafka+体系图+笔记

小小怪下士

Java 消息队列 消息中间件

软件测试/测试开发丨Python常用数据结构学习笔记

测试人

Python 数据结构 软件测试 集合 列表

版本动态 | SolidUI 0.1.0 版本发布

李孟聊AI

Web 2D 3D AIGC ChatGPT

如何加强数据资产管理?专家共话分级分类实战宝典

说山水

一种读取亿级doris数据库的方法 | 京东云技术团队

京东科技开发者

MySQL 数据库 Doris 企业号 6 月 PK 榜

实践讲解强化学习之梯度策略、添加基线、优势函数

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 6 月 PK 榜

一种接口依赖关系分层方案 | 京东云技术团队

京东科技开发者

依赖关系 接口优化 API 接口 企业号 6 月 PK 榜 接口分层

Spring事件监听机制使用和原理解析

不在线第一只蜗牛

spring springboot

「学习笔记」记忆化搜索

互联网工科生

学习笔记

精选Golang高频面试题和答案汇总

王中阳Go

golang 面试八股文 go面试题 Go面试宝典

数字化转型与架构-规划篇|满足用户期望和用户需求说:“不”

数字随行

数字化转型

低代码平台对程序员友好吗?

互联网工科生

低代码 可视化 JNPF

中国高校最大云上科研智算平台上线!

新云力量

智能 计算 复旦大学

Python开发中自动化构建项目结构样式

华为云开发者联盟

Python 开发 华为云 华为云开发者联盟 企业号 6 月 PK 榜

关于项目初期,数据量小的内容推荐的实现方法

北桥苏

推荐算法 个性化推荐 协同过滤 内容推荐

据平台流量回放最佳实践|精选

得物技术

前端 后端

.NET的基元类型包括哪些?Unmanaged和Blittable类型又是什么?一文带你深度解析

不在线第一只蜗牛

.net 编程

618技术揭秘:探究竞速榜页面核心前端技术 | 京东云技术团队

京东科技开发者

前端 H5页面 海报生成 动画特效 企业号 6 月 PK 榜

联合打造!嘉为蓝鲸携手麒麟软件共建智能运维解决方案

嘉为蓝鲸

运维 AIOPS

小程序技术分享| 小程序集成 pixi 渲染引擎

anyRTC开发者

小程序 音视频 canvas pixi 渲染

Maven进阶学习指南 | 京东云技术团队

京东科技开发者

maven 组件 依赖 Maven仓库 企业号 6 月 PK 榜

HTML5 游戏开发实战 | 五子棋

TiAmo

html html5 游戏 6 月 优质更文活动

这样做,轻松拿捏阻焊桥!

华秋PCB

工具 电路 PCB PCB设计 阻焊

嘉为蓝鲸入选《信息技术服务运维工具名录》及《IT服务工具图谱》

嘉为蓝鲸

运维 信息技术 ITSS

和鲸助力中国大学生计算机设计大赛国赛作品评审标准落实研讨会召开,专家平台首发布

ModelWhale

人工智能 专家 数据科学 研讨会 中国计算机设计大赛

这场世界级的攻坚考验,华为云GaussDB稳过

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

华为云能力中心开业暨项目签约活动圆满举办!

新消费日报

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