2024年,Rust开发语言,现在怎么样了?

Rust开发语言有着一些其他语言明显的优势,但也充满着争议,难上手、学习陡峭等。

Rust 是由 Mozilla 主导开发的通用、编译型编程语言,2010年首次公开。

在 Stack Overflow 的年度开发者调查报告中,Rust 连续多年被评为“最受喜爱的编程语言,以下是2023年的投票。

图片

一,Rust语言优势有哪些

01 内存安全

Rust 最显著的特性之一是其内存安全性

通过所有权系统、生命周期、借用检查器来确保内存安全

与 Go 和 Java 等语言不同,Rust 没有垃圾回收器

Rust 在编译时防止了许多常见的内存管理错误,例如空指针引用、悬挂指针和缓冲区溢出等

02 高性能

Rust 的性能可以与 C 和 C++ 相媲美,适合需要高效执行的场景,操作系统、嵌入式系统和游戏开发。

提供零成本抽象,使编译器能够优化与接口定义无关的代码,从而达到零开销的目标

零成本抽象实现有泛型和trait、静态分派、优化编译器等。

03 高并发

Rust 通过其所有权系统和类型系统,使得并发编程既安全高效

Rust 的编译器在编译时检查并发代码,确保无数据竞争,保证了数据在多个线程之间的安全共享和修改

Rust 允许通过 Send 和 Sync 特性安全地在线程之间传递所有权

04 跨平台

Rust 支持跨平台开发,可以编译成多种平台的二进制文件,包括 Windows、Linux、macOS ,以及Android和iOS的使用

过配置 Cargo 文件,开发者可以为不同的平台生成对应的可执行文件

外部函数接口FFI,可以与其他语言操作,通过编译so 编译成静态库, 与android和iOS提供使用

04 其他优势

Rust 的包管理器和构建系统,提供了依赖管理、构建和测试等

Crates.io Rust 的官方包仓库,包含了大量开源库,可以直接使用

Rust 拥有丰富的文档资源和相关例子,上手起来其实也比较简单和快捷

图片

二,Rust应用场景

系统编程、WebAssembly、web开发(现在看起来还不是很好)、桌面应用、命令行工具、区块链行业(Polkadot)、游戏行业、包括现在做的web3以及AI都不乏有rust语言的身影。

2024年行业里有更多的rewrite来使用rust,目的为了更安全和稳固的系统。

移动端的底层开发,比如google的android系统底层也有rust的身影。

国内华为、字节、百度、阿里、美团等在通用组件、基础平台系统都在使用rust,其他国内数据库厂商、交易所、理想汽车、小鹏汽车等,以及大量在区块链、游戏行业提供的远程职位(也是不错选择)

飞书应用包括桌面、android、iOS非UI部分也有rust来实现

三,Rust社区RoadMap

也表示2024 要降低学习门槛,拥抱更广泛的开发者社区。

Rust Lang Roadmap for 2024 | Inside Rust Blog

四,关于Rust的一些学习和机会

后边公众号的Rust合集里将介绍一些Rust的使用和快速学习笔记,帮助对Rust感兴趣的朋友快速上手,毕竟Rust给人的感觉会比较难学一些。

Rust到底好不好用,最终还是要看具体的业务场景应用。比如,目前用Rust来编写纯UI的前端,可能还不是很成熟。但在内存管理、安全性和性能优化等领域,Rust无疑是一种非常优秀的语言选择。

每种开发语言都有其独特的优势,也需要整个生态系统的完善来发挥其最大潜力。

Rust目前看是有很大可能可以在全栈领域发挥语言特性优势,并能有对应多领域岗位提供。期待你的持续关注和参与,一起学习和探索Rust的无限可能。

PS: 也欢迎大家评论和交流~ 更多文章也可关注微信公号:良技漫谈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/web/57525.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C/C++】模拟实现strlen

学习目标: 使用代码模拟实现strlen。 逻辑: strlen 需要输入一个字符串数组类型的变量,并且返回一个整型类型的数据。strlen 需要计算字符串数组有多少个元素。 代码1:使用计数器 #define _CRT_SECURE_NO_WARNINGS 1 #include&…

LLM | 论文精读 | 地学视觉语言大模型:Towards Vision-Language Geo-Foundation Model: A Survey

论文标题:Towards Vision-Language Geo-Foundation Model: A Survey 作者:Yue Zhou, Litong Feng, Yiping Ke, Xue Jiang, Junchi Yan, Xue Yang, Wayne Zhang 期刊:未提供 DOI:https://arxiv.org/abs/2406.09385 email&#x…

Spring JdbcTemplate详解

文章目录 Spring JdbcTemplate详解一、引言二、配置JdbcTemplate1、引入依赖2、配置数据库连接池3、配置JdbcTemplate 三、使用JdbcTemplate操作数据库1、添加数据2、查询数据查询某个值根据条件查询返回某个对象查询对象集合 四、总结 Spring JdbcTemplate详解 一、引言 在J…

【GO学习笔记 go基础】访问控制

Go 没有显式的 private、public 关键字,通过首字母大小写进行访问控制标识。在 Go 中,名称首字母大写表示这个名称(变量、函数、结构体等)是 导出的,可以在包外部被访问和使用。 1. 导出函数 package examplefunc Set…

【单片机】深入剖析USART与UART的区别

在嵌入式系统和微控制器开发中,串行通信是一个非常关键的概念,涉及到不同设备之间的数据传输。常见的串行通信协议包括UART(Universal Asynchronous Receiver/Transmitter)和USART(Universal Synchronous/Asynchronous…

LC:贪心题解

文章目录 376. 摆动序列 376. 摆动序列 题目链接:https://leetcode.cn/problems/wiggle-subsequence/description/ 这个题目自己首先想到的是动态规划解题,贪心解法真的非常妙,参考下面题解:https://leetcode.cn/problems/wiggle…

淘宝商品评价API的获取与应用

在当今数字化时代,电商平台如淘宝已成为消费者购物的重要渠道。对于商家和开发者而言,如何高效地获取并利用商品评价数据,成为了提升产品竞争力和优化用户体验的关键。本文将详细介绍如何使用淘宝开放平台提供的商品评论API来获取这些宝贵的数…

Android 9.0 修改WLAN热点名称为MAC地址后四位

这个需求主要是读取mac地址,mac地址一般是用写号工具写入到NVRAM,所以需要从NVRAM读取准确的地址。 导入nvram操作用到的库: frameworks/opt/net/wifi/service/Android.mk LOCAL_STATIC_JAVA_LIBRARIES : \vendor.mediatek.hardware.nvram-V1.0-java读取wifi mac…

类和对象(中)—— 类的六个默认成员函数

目录 1.类中的默认成员函数 2.构造函数 为什么要有构造函数 什么是构造函数 构造函数做了什么 默认生成的构造函数功能的分析 C11的补救 什么时候自己写构造函数 3.析构函数 为什么要有析构函数 什么是析构函数 析构函数做了什么 默认生成的析构函数功能的分析 什…

Java Executor ScheduledExecutorService 源码

前言 相关系列 《Java & Executor & 目录》《Java & Executor & ScheduledExecutorService & 源码》《Java & Executor & ScheduledExecutorService & 总结》《Java & Executor & ScheduledExecutorService & 问题》 涉及内容 …

数据结构,问题 C: 后缀表达式

题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。 如:3*(5–2)7对…

[C++]C++知识点总结(Xmind思维导图)

目录 一、C入门基础 二、类和对象 三、C/C内存管理 四、模板 五、C的IO流 六、继承 七、多态 八、C11 九、智能指针 十、类型转换 由于C知识体系过于庞大,分为下面几个部分列出逻辑图(有些不完整,后续更新中...) 一、C入…

字符串、字节流与十六进制字符串的转换:Python、C 和 Go 的实现对比20241029

字符串、字节流与十六进制字符串的转换:Python、C 和 Go 的实现对比 引言 在数据处理过程中,字符串、字节流和十六进制字符串之间的转换至关重要。这些转换在网络传输、文件存储和数据处理等场景中具有广泛的应用。本文将通过 Python、C 和 Go 三种语言…

Elasticsearch分词器基础安装

简介 Elasticsearch (ES) 是一个基于 Lucene 的搜索引擎,分词器是其核心组件之一,负责对文本数据进行分析和处理。 1. 文本分析 分词器将输入的文本拆分成一个个单独的词(tokens),以便后续的索引和搜索。例如&#x…

Vue 3:解析

写在前面 Vue 3 是流行的 JavaScript 框架 Vue.js 的最新主要版本。它带来了显著的改进和新功能,增强了开发者体验并使构建复杂应用程序变得更容易。在本文中,我们将深入探讨 Vue 3 中的关键变化和新增功能。 安装 要开始使用 Vue 3,可以通…

五、Go语言快速入门值条件控制

&#x1f4c5; 2024年4月28日 &#x1f4e6; 使用版本为1.21.5 条件判断和循环判断 If/switch条件判断 ⭐️ 和其他语言一样拥有if else if else和switch语句 1️⃣ if else if else func main() {score : 90var ans stringif score > 0 && score < 60 {an…

EfficientNet-B6模型实现ISIC皮肤镜图像数据集分类

项目源码获取方式见文章末尾&#xff01; 回复暗号&#xff1a;13&#xff0c;免费获取600多个深度学习项目资料&#xff0c;快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【基于opencv答题卡识别判卷】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【G…

扫雷游戏(C语言详解)

扫雷游戏&#xff08;C语言详解&#xff09; 放在最前面的1、前言&#xff08;扫雷游戏的简介&#xff09;2、扫雷游戏的规则&#xff08;简易版&#xff09;3、代码实现&#xff08;3.1&#xff09;提醒一下&#xff1a;( i ) 提醒1&#xff1a;( ii ) 提醒2&#xff1a; &…

影刀RPA自动化按钮参数详解

文章目录 一、基础识别参数1. 文本内容&#xff08;Text&#xff09;2. ID属性3. Name属性4. Class属性 二、高级定位参数1. XPath路径2. CSS选择器3. 图像识别 三、动态等待参数1. 等待超时2. 重试间隔 四、操作参数1. 点击类型2. 点击位置 五、最佳实践1. 按钮定位优先级2. 常…

WPF+MVVM案例实战(十四)- 封装一个自定义消息弹窗控件(下)

文章目录 1、案例效果2、弹窗控件使用1.引入用户控件2、按钮命令实现 3、总结4、源代码获取 1、案例效果 2、弹窗控件使用 1.引入用户控件 打开 Wpf_Examples 项目&#xff0c;在引用中添加用户控件库&#xff0c;在 MainWindow.xaml 界面引用控件库&#xff0c;代码如下&…