泛览天下

阅读,看尽天下事

JavaScript 开发者数量暴涨、C#超越 PHP,揭晓全球开发最新趋势!

2021-05-04 21:22:29


另外,虽然在一些热门的行业,如数据科学、嵌入式开发领域,JavaScript 并非是开发者的首选编程语言,但是也有大约四分之一的人在项目中使用了它。


Image

整理 | 苏宓
出品 | CSDN(ID:CSDNnews)

近日,知名分析公司 SlashData 在调研了全球 155 个国家/地区的 19000 多名开发者后,重磅发布了 2021 第一季度的《开发者报告》(第 20 版)。在本次报告中,重点围绕编程语言、机器学习、新兴技术、嵌入式等工具及领域,解析开发工具的应用现状,以及开发者生态的最新发展趋势。

Image

重点速览:

编程语言发展前景

  • JavaScript 依旧是最受欢迎的编程语言,全球有将近 1400 万开发者在使用;

  • 自 2020 年初以来,Python 的流行度已超过 Java,成为第二大被广泛采用的编程语言(仅次于 JavaScript),其用户数量超过 1000 万;

  • 自 2017 年 Google 在 I/O 大会上宣布 Kotlin 成为 Android 系统的一级开发语言以来,Kotlin 的用户规模增长了两倍多;

  • 过去一年,Rust 和 Lua 成为所有编程语言中增长最快的两个语言社区。

机器学习的最新变化

  • 非结构化文本数据是机器学习(ML)开发者和数据科学家工作中的最常见数据类型,使用率达 68%;

  • 大多数(53%)的机器学习工程师和数据科学家是专业开发者,不过,在某些情况下,他们也会同时参与一些业余爱好/学生项目。

新兴技术

  • 小程序的采用率正在上升;

  • 人体脑机接口技术、量子计算、自动驾驶汽车仍处于科幻领域。

嵌入式软件

  • 嵌入式开发者比不参与嵌入式软件的开发人员更可能参与工业物联网、消费电子产品、增强现实和虚拟现实等领域。

  • C ++ 是嵌入式开发者最常用的编程语言,其中 40% 的人使用它。


Image

全球 JavaScript 开发者最多,Python 流行度超越 Java


在本次调查中,SlashData 采用了与过往的 TIOBE、Redmonk、Stack Overflow 等榜单不同的方式,其首先对全球软件开发人员的数量进行了独立估算,截止 2021 年第一季度, 全球有 2430 万活跃的开发者。 这一数值相较 2020 年 10 月的 2130 万,上涨了约 14%,这意味着全球的开发者数量处于快速增长阶段。

Image

全球有 1380 万的开发者正在使用 JavaScript,主要应用于 Web、云领域

作为开发的必备工具,编程语言的发展动态向来是开发者关心的重点方向之一。

从用户规模上来看,JavaScript 稳居编程语言榜首,全球近 1400 万开发者使用它,远超排在第二的 Python。 据报告显示,过去三年间,JavaScript 社区的规模处于不断增长的趋势。 在 2017 年第四季度到 2021 年第一季度之间,超过 450 万开发人员加入了 JavaScript 社区中。

从数据来看,全球有超过 50% 的活跃开发者使用了 JavaScript,虽然有些开发者仍然以 Java、C#、PHP 等编程语言为主,但是在许多项目中多少都用到了 JavaScript。

因此,在进一步调查 JavaScript 开发者所从事的领域发现,不少开发者聚焦在 Web、Cloud 等领域。另外,虽然在一些热门的行业,如数据科学、嵌入式开发领域,JavaScript 并非是开发者的首选编程语言,但是也有大约四分之一的人在项目中使用了它。

Python 流行度超过 Java,成为仅次于 JavaScript 的第二大常用编程语言

自 2020 年初以来,Python 的流行程度就已超过 Java,成为仅次于 JavaScript 的第二大被广泛采用的语言。仅在过去的一年中,Python 社区就增加了 160 万的开发者,该社区的用户规模约为 1010 万。

Python 的使用率不断上涨和数据科学、机器学习(ML)的兴起有着不可或缺的关系,对此,有近 70% 的机器学习和数据科学工程师表示正在使用 Python。

相较而言,常被用于数据分析等领域的 R 语言发展较为惨淡,仅有 17% 的受访者表示在使用。

随着近 20 年的发展,Java 社区现在已有 940 万开发者

事实上,无论外界对编程语言的争论有多么严重,已经发展 20 年的 Java 仍然是移动应用生态系统的基础,也是 Android 开发最重要的通用语言之一。

据调查显示,自 2017 年底以来,有将近有 250 万开发人员加入了 Java 社区,该社区现在有 940 万开发人员。

Image

C# 有所下滑,PHP 在 Web 领域仍受欢迎

继 JavaScript、Python、Java 之后,C / C ++(7.3M)、C#(6.5M)、PHP(6.3M)分别排在第四、五、六位置。

其中,C 和 C ++ 是嵌入式和 IoT 项目中用于设备级和应用程序级编码的核心语言。

另外,该报告指出,在 2019 年第三季度到 2020 年第三季度之间,C# 流行度有所下滑,不过后来在过去六个月中,C# 用户量在增加了 50 万开发者之后,C# 超越 PHP,重回排行榜的第五位。

在应用领域上,一直以来,C# 主要被用于桌面开发等维度,近年来,它也成为 AR/VR 和游戏开发者的选择,究其原因,主要是由于 Unity 游戏引擎在这些领域正在被采用有关。同时研究人员表示,该语言在数据科学和移动开发中“很少使用”,因此如果微软想要继续发展 C#,并让 Xamarin 和 MAUI(多平台应用 UI 框架)获得成功,或还有大量的工作待完善。

另一种编程语言 PHP,仍然是仅次于 JavaScript 的 Web 应用程序中第二常用的语言。 一直以来,PHP 被认为是服务器端应用最为广泛的编程语言,主要是因为它被诸如 WordPress 之类的 流行 内容管理系统使用,不过,从去年十月到现在,PHP 的用户量仅增长了 20 万,其实发展并不算迅速。

Kotlin 增速迅猛,其背后离不开 Google 的扶持

在过去三年间,Kotlin 从榜单的第 11 位上升到了第 8 位,这种发展趋势很大程度上要归因于 Google 于 2017 年决定将 Kotlin 作为 Android 开发的首选语言。

不过,即便如此,想要赶超 Java,Kotlin 仍有很长的路要走。毕竟据调查显示, 当前使用 Java 构建应用程序的移动开发人员是 Kotlin 的两倍。

过去三年间,Rust 用户规模增长了两倍多

作为一门安全性较高的编程语言,Rust 获得越来越多企业的青睐,包括 Google、亚马逊、微软等等。据报告发现,Rust 在过去三年间用户规模增长了两倍多,从 2017 年第四季度的 110 万开发人员到 2021 年第一季度的 260 万。

另外, Lua 也是去年增长最快的语言社区之一。 一些从事 AR / VR 和 IoT 的开发者正在使用 Lua 用以替代 C 和 C++ 等语言。

Objective-C 正在被淘汰

在 iOS 相关应用开发中,Swift 目前仍是所有 Apple 平台上开发的默认语言,这也导致 Objective-C 逐渐被用户淘汰,据调查显示,它的排名已从第 9 位下降到了第 12 位。


Image

从事机器学习研究的以专业开发者为主


近几年来,各行各业都开始 All in 人工智能、机器学习等技术。据调查显示,68% 的 ML / AI / DS 工程师正在使用非结构化文本数据,而这也是开发者最常见的数据类型。不过,音频是最常见的组合数据类型,75-76% 的受访者表示,在处理音频数据的同时,会使用图像、视频或者文本数据。

其次,Tabular 数据类型占比 59%,是第二大最受欢迎的数据类型。

Image

据调查显示, 使用图像数据的人中有 52% 也是视频数据用户。 这两种数据类型主要应用于: 图像分类和面部识别。 而这是推动下一代智能设备发展的两个关键应用领域,也是改善游戏中的增强现实和支持自动驾驶汽车、家庭机器人、家庭安全监控和医学成像技术的重要技术方向。

机器学习、人工智能、数据分析门槛较高,53% 的受访者是专业开发者

在  ML / AI / DS 开发者群体中,53% 的受访者是专业开发者。做音频数据处理的专业开发者比例最高,占比 64%。其中,50% 的专业开发者主要从事将音频数据应用于文本到语音生成方面的研究。

Image

与之相对应的是,受学生群体欢迎的数据类型包括图像、表格和文本。使用此类数据的开发人员中,有 18-19% 是学生。另外,由于这些类型的数据不少可以免费获得,因此不少学生在掌握了这些数据后,用于研究某一领域。

大规模的数据集没有那么多

如今身处大数据时代,很多人认为 ML / AI / DS 开发者日常都可以使用非常大的数据集。但是据报告研究表明,非常庞大的数据集可能并不像人们期望的那样普遍存在。

以图像数据集为例,18% 的图像数据集在 50MB 至 500MB 之间,而只有 8% 的图像数据集超过 1TB。

Image

另外,数据集的大小也因专业状态而异。仅有 11% 的专业开发者使用最多 2 万行的结构化培训数据集,而 43% 的业余爱好者和 54% 的学生仅使用更小型数据集。


Image

论当代开发者的影响力


得开发者得天下。据调查显示,有 42% 的一线开发人员和 64% 的团队 Leader 提出建议或影响他们公司的决策者。

Image

其中,通过将自己的专业能力和经验强有力结合在一起,开发团队负责人的角色位于 CTO 和产品经理之间,成为组织中极具影响力的人。

不过,CTO 仍然是总采购长(在采购(54%)或批准费用(33%))时做出最终选择的决定的人。

值得注意的是,有 42% 没有领导职位的一线开发人员表示他们提出建议或影响决策者。据调查数据显示,之所以会有这样现象,是因为在工作中, 经验具有至关重要的作用。 通过进一步分析,数据指出,在只有不到一年经验的开发人员中,只有 32% 的人表示他们会经常影响决策者,而在拥有六年或以上经验的经验丰富的开发人员中,有超过 50% 的人在接受采访时表示他们的建议或影响决策者。

Image


Image

小程序开发已成必然趋势


在本次调查报告中,SlashData 对机器人技术、小程序、计算机视觉等新兴技术进行了追踪调查,最终发现,有一半的开发人员表示,他们正在研究、学习或对其中的很多技术都感兴趣。其中 ,小程序是专业开发者最感兴趣的,而业余爱好者/学生群体对机器人技术比较好奇。

实际上,在过去 12 个月中,小程序的实际应用已经被开发者广泛认可,采用率提高了四个百分点,这也是新兴技术中,最大的增长之一。

Image

量子计算和自动驾驶汽车在普及率方面一直处于低谷期,不过,也仍吸引了一些开发者的目光。据调查显示,45% 的受访者在使用自动驾驶技术,同时,量子计算的采用率相较过往也有一定的提升,目前占比 43%。

Image


Image

40% 的嵌入式开发者使用 C++


据数据显示,十分之一的开发者参与了嵌入式软件开发。但是,做嵌入式开发的工程师通常也涉及其他多个领域。在嵌入式开发者中,Web 应用程序/ SaaS 是最受欢迎的其他领域。

嵌入式软件开发者写的代码在哪里运行?

与纯软件开发的模式和方法有着很大的不同,想必不少人非常好奇硬件/嵌入式工程师的日常,他们是否也要写代码?

正常情况下,嵌入式工程师肯定是要写代码的,58% 的开发者日常写的代码主要运行在台式机或笔记本电脑上,其次,将代码运行在智能手机和平板电脑端的开发者占比 31%。

Image

据调查报告显示,面向台式机的嵌入式开发是一个封闭的生态系统,即为台式机环境编写代码的嵌入式开发人员不太可能将其他开发环境作为目标。

虽然是将代码运行在台式机/笔记本电脑端,但工业应用程序并不是嵌入式软件中的主流,与之相比,有四分之一的嵌入式开发者主要为工业计算单元写代码,五分之一的受访者表示,主要编写网络基础结构相关的代码。尽管如此,这些模块仍然是嵌入式软件开发的重要组成部分。

40% 的嵌入式开发者使用 C++

嵌入式软件项目中,C++ 是嵌入式开发者最常用的编程语言。其次,C、Python 紧随其后,分别占比 32% 和 30%。

Image

在嵌入式开发常用的编程语言排行榜单中,如嵌入式 C(16%)、Arduino(14%)和 Assembly(12%)排名较为靠后,不那么受欢迎,而且这些编程语言的流行程度也会受到开发者所编写代码的环境影响。例如,面向智能手机以外的 CE 设备或者非 x86 硬件架构进行开发时,有四分之一的开发者使用了嵌入式 C 语言。而当为工业计算单元或者网络基础设施编写代码时,Arduino 也颇受开发者喜爱。据调查报告显示,嵌入式工程师比没有嵌入式经验的人更可能参与工业物联网(IIoT)领域。

另外值得注意的是,一些高级的解释型编程语言(Python、Java 和 JavaScript)在嵌入式开发者的项目中也很受欢迎,这意味不少受访的嵌入式开发者并非局限于纯硬件开发层面,而是通过操作系统实现了较为抽象和复杂的研 发。事实上,据调查显示,几乎有一半的嵌入式开发者使用了 Android 设备,这也是解释型编程语言在这一领域广泛应用的主要原因。

更多报告内容详见:https://slashdata-website-cms.s3.amazonaws.com/sample_reports/lI65ncm-kfuTOtls.pdf

Image
☞“大厂平均年龄 29.6 岁”:不是我们选择了年龄焦虑,是大厂焦虑了我们

华为一则面试题火爆全网,答案众口不一

每天穿女装上班的大厂程序员:我知道自己是个男生

B 站校招面试官“炫耀资产、贬低应试者”?当事人发长文回应,北邮学子要求向学校道歉
36 岁开发者应聘被拒,这 3 位 50 岁程序员的生存秘籍送给你!
程序人生
程序人生
笑谈开发轶事,品味程序人生。
466篇原创内容
Official Account