2022 技术趋势:C++、Go、Rust 大放异彩

2024-01-20 07:10

本文主要是介绍2022 技术趋势:C++、Go、Rust 大放异彩,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

击上方“C语言与CPP编程”,选择“关注/置顶/星标公众号

干货福利,第一时间送达!

文 | 白开水不加糖

出品 | OSC开源社区(ID:oschina2013)

在线学习平台 O'Reilly 最新发布了一份《Technology Trends for 2022》报告。该报告基于该平台 2021 年 1 至 9 月产生的数据,并与 2020 年同期进行了比较;就技术行业的趋势进行了一番分析。O'Reilly 的用户群涵盖全球来自 100 多个国家/地区的数以百万计的开发者。

报告基于四种具体数据进行了分析:搜索查询、向人工智能引擎 O'Reilly Answers 提出的问题、按 title 的资源使用情况、以及按主题分类的资源使用情况。值得注意的是,对于平台上尚未囊括的内容(如:QUIC 协议或 HTTP/3 之类的);无论用户兴趣程度如何,其相关统计数据都将为零。

f3a6e189243e6e44ca87a829a753fc1b.png

调查结果指出,勒索软件正在推动开发者对网络安全的兴趣、物联网和游戏开发则刺激了对有 35 年历史的编程语言 C++ 的兴趣。以及存在的可能情况是,开发人员正在关注一些较新的语言,以拓展自身优势。

具体表现为,过去一年中有关勒索软件的内容使用量几乎增加了两倍(270%)、关于隐私的内容增加了 90%、威胁建模增加了 58%、身份识别增加了 50%、应用程序安全性提高 45%、恶意软件增加了 34%、零信任增加了 23%。供应链安全尚未成为安全主题,但有关供应链管理的内容的使用量增长了 30%。

对 C++ 的兴趣在过去一年显着增长(13%),其使用量大约是 C 的两倍。关于 C 的内容使用基本持平,下降了 3%。O'Reilly 方面指出,C++ 在游戏编程中占主导地位,但他们怀疑该语言还将在嵌入式系统中成为主导,且正越来越广泛地用于开发微服务。另一方面,虽然 C 语言在传统上是工具开发者的主要语言(所有 Unix 和 Linux 实用程序都是用 C 编写的),但这一角色可能已经转移到 Go 和 Rust 等较新的语言。

Go 和 Rust 继续增长。自去年以来,有关 Go 的内容使用量增长了 23%,Rust 增长了 31%。“我们预计增长将继续。Rust 和 Go 都将继续存在。Rust 反映了关于内存管理和并发性的全新思考方式。除了为并发提供一个干净且相对简单的模型之外,Go 代表了一种语言的转变,这些语言随着每个新版本的发布而变得越来越复杂。”

尽管对 C++ 的兴趣显着增加,但 Python、Java 和 JavaScript 仍保持领先地位。其中 Java 上升了 4%,Python 下降了 6%,JavaScript 下降了 3%。此外,Scala 和 Kotlin 分别下降了 27% 和 9%。

d1ececf00645e5fe7f1c61eb1b01adeb.png

软件架构、Kubernetes 和微服务是 2021 年使用量最大的三个主题。它们的同比增长也非常健康,分别为 19%、15% 和 13%。考虑到云应用程序开发的步伐,对容器软件的兴趣也增加了 137%;Docker 的增长较少但使用量较高。

Amazon Web Services 的竞争正在加剧。有关 Microsoft Azure 的内容使用量增长了 32%,Google Cloud 增长了 54%,而 AWS 相关内容的使用量下降了 3%。

关于机器学习的内容使用量增长了 35%,但该主题的特定兴趣发生了显着变化。例如,对深度学习的兴趣下降了 14%、对神经网络的兴趣增长了 13%、强化学习和对抗网络分别增长了 37% 和 51%。 

更多详情可查看完整报告:https://www.oreilly.com/radar/technology-trends-for-2022/

- EOF -

点赞和在看就是最大的支持❤️

这篇关于2022 技术趋势:C++、Go、Rust 大放异彩的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/625176

相关文章

Rust中的Drop特性之解读自动化资源清理的魔法

《Rust中的Drop特性之解读自动化资源清理的魔法》Rust通过Drop特性实现了自动清理机制,确保资源在对象超出作用域时自动释放,避免了手动管理资源时可能出现的内存泄漏或双重释放问题,智能指针如B... 目录自动清理机制:Rust 的析构函数提前释放资源:std::mem::drop android的妙

Rust中的BoxT之堆上的数据与递归类型详解

《Rust中的BoxT之堆上的数据与递归类型详解》本文介绍了Rust中的BoxT类型,包括其在堆与栈之间的内存分配,性能优势,以及如何利用BoxT来实现递归类型和处理大小未知类型,通过BoxT,Rus... 目录1. Box<T> 的基础知识1.1 堆与栈的分工1.2 性能优势2.1 递归类型的问题2.2

使用Go语言开发一个命令行文件管理工具

《使用Go语言开发一个命令行文件管理工具》这篇文章主要为大家详细介绍了如何使用Go语言开发一款命令行文件管理工具,支持批量重命名,删除,创建,移动文件,需要的小伙伴可以了解下... 目录一、工具功能一览二、核心代码解析1. 主程序结构2. 批量重命名3. 批量删除4. 创建文件/目录5. 批量移动三、如何安

C++一个数组赋值给另一个数组方式

《C++一个数组赋值给另一个数组方式》文章介绍了三种在C++中将一个数组赋值给另一个数组的方法:使用循环逐个元素赋值、使用标准库函数std::copy或std::memcpy以及使用标准库容器,每种方... 目录C++一个数组赋值给另一个数组循环遍历赋值使用标准库中的函数 std::copy 或 std::

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

Go路由注册方法详解

《Go路由注册方法详解》Go语言中,http.NewServeMux()和http.HandleFunc()是两种不同的路由注册方式,前者创建独立的ServeMux实例,适合模块化和分层路由,灵活性高... 目录Go路由注册方法1. 路由注册的方式2. 路由器的独立性3. 灵活性4. 启动服务器的方式5.

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要