StackOverflow 2022年开发者调查报告节选
2022-06-24 15:24:12 阿炯

Stack Overflow 2022年开发者调查报告现已于6月下旬出炉。其年度开发者调查是面向全球开发者进行的规模最大、最全面的调查,调查涵盖了从开发者喜爱的技术到工作偏好等内容。2022 年是 Stack Overflow 发布年度开发者调查报告的第十二年,有来自 180 个国家/地区的 73000 多名开发人员参与了这个调查。其中,依旧是来自美国和印度的受访者数量最多,其次是德国和 UKI英国和爱尔兰;仅有 632 份调查反馈来自中国开发者,占比为 0.88%。

此次调查的一些亮点内容如下:
在线学习编程的比例从 60% 上升到了 70%,45 岁以上的受访者喜欢从书本上学习知识,年轻人18 岁以下依赖在线学习与资源。
Docker 似乎正在成为专业开发人员的基本工具,从 55% 增加到 69%。
Rust 已连续第七年成为最受喜爱的语言,87% 的开发人员表示他们希望继续使用它。
Phoenix 取代 Svelte 成为最受欢迎的 Web 框架。Angular.js 连续三年成为开发者最讨厌的框架,React.js 连续五年成为开发者最想学习的框架。
Docker 和 Kubernetes 分别位列最受喜爱和想要学习的工具第一和第二位。大家想要使用 Docker 的意愿似乎并未放缓,从去年的 30% 增加到了今年的 37%。
Clojure 仍然是已知最高收入的语言。Chef 开发人员薪水最高,但它也是开发者最不喜欢的工具之一。
69% 的受访者从事全职工作,相较去年上升了 4 个百分点。
85% 的开发人员表示,他们的组织至少部分是支持远程的。
62% 的受访者每天花费超过 30 分钟寻找问题的答案或解决方案,还有 25% 的人每天花费超过一个小时。对于一个由 50 名开发人员组成的团队来说,整个团队每周花费在搜索答案/解决方案上的时间总计 333-651 小时 。

最流行的技术

编程、脚本和标记语言

专业开发人员最常用的前五名语言没有变化;JavaScript 连续第十年成为最流行的编程语言。但报告指出,对于那些正在学习编程的人来说,HTML/CSS、Javascript 和 Python 几乎并列成为最常用的语言。还在学习阶段的人比专业开发者更有可能使用 Python58% 对 44%、C++35% 对 20%和 C32% 对 17%。与专业开发人员相比,尚在学习编程的人则更少使用 SQL38% 对 53%、TypeScript15% 对 40%和 Bash/Shell19% 对 29%。



数据库

总体而言,MySQL 依然是最受欢迎的的数据库。但在专业开发者群体中,PostgreSQL46.48%已经超越 MySQL45.68%夺得了第一名。专业开发者比正在学习编程的人更有可能使用 Redis、PostgreSQL、Microsoft SQL Server 和 Elasticsearch。MongoDB 在两类群体中的使用比例则相似,且它是初学者群体中第二受欢迎的数据库仅次于 MySQL。“这很合理,因为它支持大量的语言和应用开发平台。”



云平台

AWS 仍然是最常用的云平台,Microsoft Azure 超越 Google Cloud 中夺得第二名的位置。



Web 框架和技术

Node.js 和 React.js 是最常用的两种 Web 技术。使用 Angular 的专业开发人员比初学者要多23% 对 10%,ASP.NET16% 对 10%和 ASP.NET Core21% 对 10%也是。



其他框架和库

在机器学习方面,TensorFlow 仍然比 PyTorch 更受欢迎,Scikit-learn 紧随 TensorFlow 之后。Flutter 和 React Native 是两个最受欢迎的跨平台工具。初学者比专业开发者更有可能使用 NumPy43% vs 24%和 Pandas35% vs 22%,以及更可能使用 TensorFlow18% vs 11%和 Scikit-learn17% vs 11%。



其他工具

去年的报告指出,Git 是作为一个开发者的基本工具。但在今年,Docker 似乎正在成为专业开发者的一个类似的基本工具,其占比从 55% 增加到了 69%。


集成开发环境

Visual Studio Code 仍然是所有开发人员的首选 IDE。PyCharm 更多地被初学者使用26% 对 16%,而 Vim 则更多地被专业开发人员使用24% 对 16%。

异步工具

同步工具

操作系统

Windows 是最受开发人员欢迎的操作系统,适用于个人和专业用途。基于 Linux 的操作系统比 macOS 更受欢迎;报告称,这彰显了使用开源软件的吸引力。


最喜爱、最恐惧、最想学习的技术

编程、脚本和标记语言

Rust 连续第七年成为最受喜爱的编程语言,87% 的开发人员表示他们希望继续使用它。


▲最喜爱、最恐惧的语言


▲最想学习的语言

数据库

在 Redis 霸榜五年后,PostgreSQL 成功夺得最受喜爱和最想学习的数据库位置。IBM DB2 连续第三年成为最令人恐惧的数据库。




云平台

AWS 不仅是最常用的云平台,也是开发者最受喜爱和最想学习的云平台。

Web 框架和技术

Phoenix 取代 Svelte 成为最受喜爱的 Web 框架。Angular.js 已经连续三年喜爱度垫底,React.js 连续五年成为开发者最想学习的框架。



其他框架和库

Hugging Face Transformers 是最受喜爱的库,Tensorflow 最想被学习的。



其他工具

Docker 和 Kubernetes 分别位列最受喜爱和想要学习的工具第一和第二位。77% 的用户喜欢 Docker,75% 的用户喜欢 Kubernetes;37% 的用户希望使用 Docker,24% 的用户希望使用 Kubernetes。

集成开发环境

Neovim 连续第二年成为最受喜爱的编辑器,Visual Studio Code 紧随其后。不过 Visual Studio Code 是大家最想学习的工具,其次是 Android Studio。


使用过和希望使用的技术


编程、脚本和标记语言

与去年类似,有超过 1 万名 Javascript 开发人员表示希望开始或继续使用 Go 或 Rust 进行开发。

数据库

有 11185 名 MySQL 开发者想使用 PostgreSQL 工作,以及 9520 名 MySQL 开发者想使用 MongoDB 工作。

云平台

与 2021 年类似,有大量 AWS 开发人员希望在 Google Cloud 或 Microsoft Azure 中进行开发。

Web 框架和技术

有 12954 名使用 Node.js 的开发人员想要使用 React.js。


高薪酬的技术


编程、脚本和标记语言


数据库


Web 框架


平均而言,2021 年至 2022 年间,工资中位数增长了约 23%。Flow、COBOL、Couchbase 和 IBM Cloud/Watson 的工资同比增幅最大。此外,与具有相同经验的其他语言相比,PHP 开发人员的薪水仍然过低。


更多详情可查看完整报告。

在过去的 8 个月时间里从 2021 年 10 月到 2022 年 6 月,DevJobsScanner分析了超过 700 万份开发者工作需求,得出了目前行业需求量最高的 8 种编程语言。需要注意的是,在这 700 万份工作需求中,其只挑选了有明确编程语言要求的工作,舍弃了对语言要求比较模糊的工作。一起看看在目前的市场需求中,哪些语言是最紧俏的。

8. GO
Go 是一门年轻的语言,Google 于 12 年前才创建它。Google 设计 Go 是为了在多核、联网机器和大型代码库的时代提高编程效率。从下面的图表中可以看出,Go 的受欢迎程度正在缓慢增长,在 2023 年它有可能会进入前五名。在这 8 个月时间里,共发现了 3 万个工作机会,占具有明确编程语言需求工作中的 2%。

7. Ruby
Ruby 占据了需求量最大的编程语言的第七名,它最受欢迎的用法是与网络框架 Ruby on Rails 结合在一起。尽管第七名看起来不高,但 Ruby 在 Twitter、Github 和 Crunchbase 等公司内广泛使用。在这 8 个月时间里,共发现了 6.6 万个工作机会,占具有明确编程语言需求工作中的 4.2%。

6. C/C++
从 C 语言的首次发布到现在已经过去了 50 年,而从后来 C++ 的出现到现在也已经过去了 37 年,C++ 最初的名字是 "C with Classes"。C/C++ 通过对语言的定期补充和改进保持了其受欢迎程度,现代 C++ 包括面向对象、泛型等特性。它在行业中的使用范围很广,在电子游戏、服务器、数据库,甚至是空间探测器种都可以看到 C++ 的身影。在这 8 个月时间里,共发现了 8.5 万个工作机会,占具有明确编程语言需求工作中的 5.5%。

5. PHP
PHP 排名第 5,创立 27 年以来,PHP 如今仍然是需求量第五大的语言。PHP 主要用于网站开发,与 Laravel 或 Wordpress 等框架结合使用。在这 8 个月时间里,共发现了 10.9 万个工作机会,占具有明确编程语言需求工作中的 7%。

4. C#
第四名由 C# 获得,C# 是一种通用的多范式编程语言,作为一种通用语言,C# 的使用范围很广。C# 最常见的用法是与 .NET 框架一起使用,它在 Unity 游戏框架中也被大量用于脚本编写。.NET 框架和 Unity 在知名公司中都很受欢迎。在这 8 个月时间里,共发现了 13.5 万个工作机会,占具有明确编程语言需求工作中的 9%。

3. Java
需求量排名第三的编程语言是 Java。自 1995 年创建以来,Java 一直深受大家的喜爱。尽管在过去的几年里,随着 Kotlin 等更多现代语言的出现,这种受欢迎程度在持续下降,但它仍然稳居前三。目前有许多知名公司在使用像 Spring 这样的框架,也有助于 Java 保持这一地位。在这 8 个月时间里,共发现了 26.2 万个工作机会,占具有明确编程语言需求工作中的 17%。

2. Python
Python 成为了 2022 年需求量排名第二的编程语言。它的多功能性,从脚本、运行服务器、AI、用于数据分析等,是实现这一里程碑的关键。在这 8 个月时间里,共发现了 30.8 万个工作机会,占具有明确编程语言需求工作中的 20%。

1. Javascript / Typescript

自从 Javascript 作为网络编程语言诞生以来,Javascript 就一直是热门的编程语言之一。即便到了 2022 年,Javascript 目前仍然是整个市场上需求量最大的编程语言,此外 Typescript 的到来也起到了推动作用,近年来 Typescript 的受欢迎程度只增不减,许多新的 Javascript 框架完全是用 Typescript 编写的,如 Angular 和 NestJS。在 8 个月的时间里,发现了 48.6 万个工作机会,占具有明确编程语言需求工作中的 32%。


需求量最大的编程语言完整列表

以下是完整的图表,包括编程语言及其各自需求量:

小结

很明显,Javascript 和 Typescript 在开发者就业市场上占据主导地位。Javascript 和 Typescript 共占明确编程语言工作机会中的 32%。意味着每三份工作机会中就有一个需要 Javascript 或 Typescript。Python 和 Java 是需求量第二和第三大的编程语言,但在过去的两个月里,Java 的工作机会数量已经超过了 Python。C# 是另一种值得关注的语言,在这 8 个月中,它一直在缓慢增长。Go 的情况也是如此,但增加幅度相对缓慢。


美国软件开发人员的平均工资为每年 110,140 美元或每月 9,178 美元。初级开发人员的平均工资为每年 69,354 美元或每月 5,779 美元,高级开发人员的平均工资为每年 104,188 美元或每月 8,682 美元。软件开发人员收入最高的州是加利福尼亚,平均工资为 146,770 美元;华盛顿次之。收入最高的城市包括圣何塞167,420 美元、旧金山158,320 美元和西雅图148,200 美元。该国的编程语言平均薪资水平中,Go 和 Python 等流行的后端语言位居榜首。具体表现为:
Go 是收入最高的语言,120,577 美元。
Ruby 以 119,558 美元位居第二
Python 为 114,904 美元
Java 的平均工资为 112,013 美元
JavaScript 为 111,922 美元
Android 开发者的平均收入为 109,377 美元
与 Android 相比,iOS 的平均工资略低,为 108,783 美元
Rust 紧随其后,为 108,744 美元
C 语言 101,734 美元
PHP 为 92,867 美元
SQL 最少为 85,845 美元

欧洲软件开发人员的平均工资水平低于美国。总体而言,欧洲国家在东西方之间存在很大差异。西欧开发者的年收入至少为 40,000 美元以上,而东欧的开发者期望的收入要少得多,约为 20,000 美元以上;南欧开发者的薪酬也要低于北欧开发者。西班牙、意大利、葡萄牙和希腊的开发人员预计年薪范围在 21,314 到 36,323 美元。

美国和欧洲国家之外,以色列软件开发人员的平均年薪为 71,559 美元或每月 5,963 美元。初级开发人员每年赚 69,851 美元或每月 5,820 美元,高级开发人员通常年薪为 114,751 美元或每月 9,562 美元。语言方面,Golang每年 109,702 美元和 Python每年 83,369 美元平均薪资水平最高。PHP 和 Ruby 在以色列支付的薪资水平最低,分别为每年 64,573 美元和 64,525 美元。

Golang 开发人员的年平均收入为 109,702 美元。
Python 开发人员的收入为 83,369 美元。
移动开发者的薪酬排名第三和第四:Android 开发者的年薪为 78,558 美元,iOS 开发者的年薪为 76,692 美元。
Java 开发人员的薪酬为 74,251 美元。
JavaScript 开发人员的收入为 72,028 美元。
SQL 开发人员在以色列的薪酬为 65,770 美元。
PHP64,573 美元和 Ruby64,525 美元是以色列收入最低的语言。

此外,日本开发人员的平均工资为每年 36,024 美元或每月 3,002 美元。编程语言薪资方面,iOS 水平最高,Ruby 位居第二;SQL 和 Java 是日本收入最低的编程语言。印度软件开发人员的平均工资为每年 7,725 美元或每月 643 美元。Ruby 是印度收入最高的编程语言,每年 12,372 美元。Android 是薪资水平最低的语言,为 5,181 美元 / 年。

总体而言,各国总体编程语言薪资水平中,Golang 和 Ruby 往往是高薪语言,而 JavaScript 和 PHP 则是工资最低的语言。

完整数据可查看此处


各编程语言中最流行的许可证

OSI 所属的 Voices of Open Source 在2023年12月下旬发布了一篇“2023 年每种语言中最流行的许可证”的文章,揭示了每种编程语言生态系统中的许可偏好,并强调了清晰和标准化许可证对开发人员、组织和整个开源社区健康的重要性。

文章指出,MIT 和 Apache 2.0 许可证在不同的编程语言和包管理器中最为普遍。JavaScript 社区通常倾向于使用 MIT 许可证,Python 开发人员则偏爱 Apache 2.0。ISC 许可证以其简单性和宽容性在 JavaScript 社区中颇受欢迎。BSD 许可证(包括 3-Clause 和 2-Clause)保持稳定但相对较低的采用率。GPL 也有一定的影响力,但落后于 MIT 和 Apache 2.0。

Javascript (npm)

JavaScript 的 npm 软件包管理器中,大多数组件采用的是 MIT 许可(53%),其次是 Apache 2.0(14.76%)和 ISC(10.48%)。ISC 许可证由 Internet Systems Consortium 发布,虽然在 JavaScript 项目中很流行,但在其他编程语言中使用得并不多。小部分项目没有许可证(8%)或或是没有 SPDX 识别的许可证/无声明(5.49%)。



.NET (Nuget)

而在 .NET 的包管理器 Nuget 中,最令人担忧的点在于,它的大部分组件要么没有许可证(26.76%),要么被认定为 "NOASSERTION"(31.95%)。使用 MIT 或 Apache 2.0 许可的比例分别为 21.55% 和 13.37%。



Java (Maven)

Maven (Java 的包管理器) 中的绝大多数组件都使用 Apache 2.0 许可证(69.18%),使用 MIT 的组件仅占 7.4%。此外,被归类于 NOASSERTION 的组件占比为 14.75%。



Python (Pypi)

在 Python 的包管理器 Pypi 中,MIT 和 Apache 2.0 许可下的组件占主导地位,分别为 29.14% 和 23.98%。BSD 2-Clause 和 GPL 3.0 下的组件分别占 6.25% 和 6.11%,还有相当一部分组件没有许可(23.69%)。



Ruby(Gem)

Gem(Ruby 的包管理器)中绝大多数组件都使用 MIT 许可证 (63.11%)。其次是 Apache 2.0 和 BSD 3-Clause 许可证,分别占 8.22% 和 6.66%。



PHP(Composer)

在 PHP 的包管理器 Composer 中,MIT 许可证非常受欢迎,占 64.37%。BSD 3-Clause 和 Apache 2.0 下的项目分别占 5.72% 和 3.92%。



Go

Apache 2.0 和 MIT 许可证在 Go 中占主导地位,分别为 32.49% 和 20.1%。很大一部分 Go 组件没有许可证(29.67%)。



Rust(Crate)

对于 crate(Rust 包管理器),使用 MIT 和/或 Apache 2.0 的项目占主导地位,合计占比 83.52%。



总的来说,虽然市场上已经存在一些成熟的许可证供选择,但仍有许多开源组件未指定许可证或标记为 SPDX “NOASSERTION”。文章指出这种模糊性致使此类组件的使用也存在很多不确定性,可能会阻碍协作、并给开发者造成法律和安全风险。

解决无许可证组件的问题对于开源社区的持续健康发展至关重要。开发人员、组织和整个社区都受益于清晰和标准化的许可。它不仅促进协作,还确保法律合规性并保护贡献者的知识产权。此外,它还可以帮助开发人员跟踪可能存在漏洞的组件。


Stack Overflow 裁员 10%,将推出基于 AI/ML 的产品

Stack Overflow 首席执行官 Prashanth Chandrasekar 在2023年5月表示,出于对宏观经济的担忧并重新关注盈利能力的原因,该公司将裁员约 10%,至少影响 58 名员工。受裁员影响的员工包括 UX 设计师、人力资源专业人员、产品设计师和高级软件开发人员,Stack Overflow 将为其提供遣散费、医疗保健福利的扩展和再就业服务。

数据显示,自2022年年中以来,包括亚马逊、Meta、 谷歌和微软在内的几家科技公司都在裁员,担任类似职务的专业人士纷纷失业。截止2023年5月,已有 665 家科技公司裁员约 192,722 人,2023年裁员人数为 164,591 人。他还透露,为了专注于盈利能力,Stack Overflow 将在未来几个月内推出基于 AI 和 ML 的产品。本财年的重点是盈利能力,这与宏观经济压力一起导致了今天的变化。这些变化也是我们认真审视本财年的战略重点以及我们的组织结构的结果,因为我们投资于 Stack Overflow for Teams 的持续增长;并计划在未来几个月推出以 AI/ML 为重点的产品,同时追求敏捷性和灵活性。我们的承诺是继续为我们的客户提供他们期望的服务水平,并为我们公共平台的用户提供他们近 15 年来一直从 Stack Overflow 寻求的知识。

此前,受 ChatGPT 和 GitHub CoPilot 等 AI 产品的影响,Stack Overflow 社区网站的流量已经出现了持续下降。开发人员已经越来越多地选择从 AI 聊天机器人和 GitHub CoPilot,而非编程问答社区 Stack Overflow 上获取建议,之前还曾宣布了一项禁止在其网站上发布 ChatGPT 生成内容的政策。