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

news/2024/10/28 11:16:07/

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

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

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

图片

一,Rust语言优势有哪些

01 内存安全

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

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

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

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

02 高性能

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

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

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

03 高并发

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

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

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

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.ppmy.cn/news/1542575.html

相关文章

First - Word Fall - Through ( FWFT ) Read Operation

When looking at Xilinx 8 Kintex-7 4 FPGAs memory resources 32, you’ll find that its FIFO generators support two modes of read options - standard read operating and FWFT read operation. What is FWFT? FWFT is a acronym for First-Word Fall-Through. It is g…

vue3+ts实时播放视频,视频分屏

使用vue3以及播放视频组件Jessibuca Jessibuca地址 使用循环个数来实现分屏 效果图&#xff0c;四屏 九屏 dom代码 <div class"icon"><div class"icon-box"><span class"text">分屏&#xff1a;</span><el-icon …

Docker:namespace环境隔离 CGroup资源控制

Docker&#xff1a;namespace环境隔离 & CGroup资源控制 Docker虚拟机容器 namespace相关命令ddmkfsdfmountunshare 进程隔离文件隔离 CGroup相关命令pidstatstresscgroup控制 内存控制CPU控制 Docker 在开发中&#xff0c;经常会遇到环境问题&#xff0c;比如程序依赖某个…

Qt元对象系统 —— 属性系统

目录 属性系统 进一步&#xff1a;使用上面的阐述详细讨论如何对对象的属性读写 一个例子 Detailed Descriptions of settings 我们下面要讨论的是Qt元对象系统的第二部分&#xff1a;那就是Qt的属性系统。我们知道大部分的类其实都在现实生活中表达一种属性——我们希望通过…

加密DNS有什么用?

在当今数字化高速发展的时代&#xff0c;网络安全和隐私保护成为人们日益关注的焦点。而加密 DNS作为一种新兴的技术手段&#xff0c;正逐渐发挥着重要的作用。 首先我们先来了解下什么是加密DNS&#xff0c;它究竟是什么&#xff1f; 加密DNS&#xff08;Domain Name System…

Qt的简单布局管理说明

目录 Qt的几个Layout QBoxLayout 一个例子&#xff1a; 一些常见的API QGridLayout 一个例子&#xff1a; API QFormLayout 例子 API QStackedLayout 一些例子 API 其他 QSplitter 一些例子 API 附注 这里不是具体的好看的界面设计教程&#xff0c;但是打算说…

DDei 在线设计器 V1.2.41 版发布

​ DDei 在线设计器 V1.2.41 版本带来了新功能、提升了性能、增强了稳定性、扩展了多个回调函数。 提供了简版布局与之配套的简版控件工具箱和顶部菜单&#xff0c;并支持通过 vue 来扩展菜单。 2.由canvas渲染改为canvshtml混合渲染&#xff0c;提升清晰度和渲染性能&#xf…

Leetcode 3336. Find the Number of Subsequences With Equal GCD

Leetcode 3336. Find the Number of Subsequences With Equal GCD 1. 解题思路2. 代码实现 题目链接&#xff1a;3336. Find the Number of Subsequences With Equal GCD 1. 解题思路 这一题没能自力搞定&#xff0c;挺伤心的&#xff0c;看大佬的代码之后发现思路上是一个非…