写点什么

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

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

关注

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

ABAP Netweaver和git的快捷方式

汪子熙

SAP Netweaver CloudFoundry 11月日更

用明道云集成多平台多部门数据,发挥数据分析的力量

明道云

Moment.js 转换 UTC 格式的 2 个小问题

HoneyMoose

TDSQL | 多类型数据库统一管理,腾讯云数据库DBhouse工具重磅发布

腾讯云数据库

数据库 tdsql

用一个极致简单的场景演练领域建模

神帅

DDD 领域建模

MySQL打印死锁日志

Simon

MySQL 死锁

作业三总结

Geek_1d37ea

架构训练营

金融级数据库新坐标:腾讯云TDSQL发布全自研新敏态引擎

腾讯云数据库

数据库 tdsql

重点人员动态管控系统开发,智慧公安情报研判系统搭建

电微13828808271

TypeScript 针对 JavaScript 做了什么

HoneyMoose

一文帮你掌握TDengine的降采样查询+跨时区统计

TDengine

数据库 tdengine 后端

Apache Pulsar 荣获中国开源云联盟「2021 优秀开源项目」

Apache Pulsar

大数据 云原生 开源项目 Apache Pulsar 消息系统 Apache Pulsar 社区

架构实战营模块八作业

Geek_d18264

架构实战营

10行代码,撸一个在线个人简历页面!

老表

Python GitHub Linux web开发 跟老表学云服务器

8大原则带你秒懂Happens-Before原则

华为云开发者联盟

线程 并发 Happens-Bfore Java内存

企业采购管理的这些痛点,如何解决?

低代码小观

企业管理 管理系统 管理工具 采购管理 企业采购管理

校招 C++ 大概学习到什么程度?

博文视点Broadview

【Promise 源码学习】第八篇 - 完善 Promise 并通过 promise-aplus-tests 测试

Brave

源码 Promise 11月日更

JDK的第三个LTS版本JDK17来了

程序那些事

程序那些事 11月日更 jdk17 java17

模块三作业

Geek_1d37ea

架构训练营

云管理软件哪家好?有哪些功能?咨询电话多少?

行云管家

云计算 云服务 云平台 云资源 云管理

云小课 | DSC:快速识别敏感数据并脱敏

华为云开发者联盟

华为云 识别 数据脱敏 数据安全中心 敏感数据

OPPO 图数据库平台建设及业务落地

NebulaGraph

图数据库 知识图谱 图数据库实战 分布式图数据库

智联招聘的Web模块扩展落地方案

智联大前端

组件化 SSR

CodeGuide 300+文档、100+代码库,一个指导程序员写代码的,Github 仓库开源啦!

小傅哥

Java GitHub 小傅哥 开源社区 代码库

新机遇,拨开证劵企业生态转型迷雾

大咖说

云计算 阿里云 数字化转型 数字化 企业上云

国家质量基础设施(NQI)一站式综合服务平台开发搭建

电微13828808271

100G云服务器诞生记

科技热闻

在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务

汪子熙

SAP abap CloudFoundry 11月日更

TDSQL首次登上腾讯财报!金融机构核心系统落地实现规模化复制

腾讯云数据库

数据库 tdsql

新时代下如何构建TDSQL-C数据库产品

腾讯云数据库

数据库 tdsql

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