2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Rust 能够取代 C 语言吗?

  • 2020-04-20
  • 本文字数:1619 字

    阅读完需:约 5 分钟

Rust能够取代C语言吗?

Rust 是 Mozilla 基金会的一个雄心勃勃的项目,号称是 C 语言和 C++ 的继任者。一直以来,C/C++ 中的一些基本问题都没能得到解决,比如分段错误、手动内存管理、内存泄漏风险和不可预测的编译器行为。Rust 的诞生就是为了解决这些问题,并提高安全性和性能。


Evrone(一家软件公司)在很多项目中使用了 Rust,我们的工程师们这方面在积累了丰富的经验。在这篇文章中,我们将分享 Rust 的一些主要特性。


主要特性


  • 强静态类型;

  • 无垃圾回收以及通过指针手动控制数据存储位置的能力;

  • 强大的内置静态代码分析器,有助于避免与内存管理和多线程相关的问题;

  • C 语言风格的语法,具有简短的关键字。


Rust 简史

Graydon Hore 于 2008 年发起 Rust 项目。2009 年,Mozilla 表达了对这个项目的兴趣。一年之后,项目正式公开。2012 年,Rust 的第一个 alpha 版本发布。一年后,Servo Web 引擎(基于 Rust)开发人员宣布,他们得到了三星公司的支持,将引擎移植到 ARM 架构。


Rust 1.0 于 2015 年 5 月发布。同年,Rust 在 Stack Overflow 发布的最受欢迎开发工具排行榜中排名第三。从 2016 年至今,Rust 一直高居榜首。


为什么要使用 Rust

优点

  • 统一的编译器,提供了一个内置的包生成器和管理器、测试系统和文档生成器;

  • 安全的内存管理,有助于避免分段错误;

  • 抽象能力,让手动内存管理变得更容易;

  • 提供了常见的编译错误修复建议;

  • 只能在非安全代码中使用指针——安全代码中只包括指向确切存在的对象的链接;

  • 与 Mac 和 Unix 家族系统具有良好的兼容性。

不足

  • 没有类和继承机制,难以编写面向对象的代码;

  • 编译器太过严格,有时候对内存地址的限制过多。


Rust 的使用场景

Rust 支持主要的编程范式:面向对象编程、并发编程、函数式编程和过程编程。它提供了足够的内存管理能力,同时又足够安全,让它成为操作系统和关键应用程序的开发工具。它的主要缺点是硬件厂商对它支持不够,厂商更喜欢使用 C/C++。下面是一些使用 Rust 开发的软件项目:


  • Redox,一个基于微内核的 Unix 家族操作系统,该操作系统中的大部分软件也是使用 Rust 开发的;

  • Servo,多线程 Web 引擎;

  • Firecracker,用于无服务器环境的微虚拟化系统。

使用 Rust 开发的区块链系统

基于分布式账本的系统必须能够以最小的设备计算负载快速地处理请求。C++ 非常适合用来完成这项任务,而使用 Rust 开发区块链系统将会更加高效。下面这些都是值得关注的案例:


  • Parity.io——以太坊和比特币的一个客户端;

  • Polkadot.network——异构区块链网络;

  • Exonum,一个基于区块链的项目框架;

  • MaidSafe,一个分布式数据处理和存储系统;

  • Solana,一个用于开发 Web 区块链应用程序的平台。


Rust 可以用来开发 Web 项目:Rust 的 SDK 可用于前端和后端开发。例如,使用 Yew(灵感源自 React 和 Angular)开发客户端,使用 Actix-web(一个高性能框架,支持 WebSockets、TLS 和 HTTP/2.0)开发 Web 服务器。


其他工具还包括:rocket、conduit、gotham、pencil。

一些成功的 Rust 项目

  • Dropbox,一种云存储服务;OpenDNS,一种用于创建公共 DNS 服务器的 Web 服务;

  • Coursera,由斯坦福大学 IT 教授创建的教育门户网站;

  • 使用 Rust 开发的机器学习项目。


使用 Rust 开发的神经网络似乎非常有前景。因为 Rust 的高性能和底层内存控制能力,Rust API 可以成为神经网络领域非常流行的开发工具。


但目前使用 Rust 开发机器学习应用还处于实验阶段,Rust 生态系统还缺少可用于开发类似 Python 神经网络的库。

Rust 的未来

C++ 已经统治了编程语言领域近 40 年,成为了一个行业标准,并保持这个头衔至今。Rust 正在积极演进,试图解决 C++ 和其他编程语言当中最为致命的缺陷。


在 Evrone,我们使用 Rust 开发了一个大型的连锁餐厅 ERP 系统。其中微服务部分使用 Rust 开发,为用户提供离他们最近的餐厅的数据。


Rust 的另一个应用——也就是我们的持续集成服务 Vexor。在这个服务中,Rust 负责任务的管理和调度以及日志管理,并作为任务隔离执行代理的基础。

英文原文

Why Rust is Meant to Replace C


2020-04-20 09:1819146
用户头像
小智 让所有人认同的文字称不上表达

发布了 408 篇内容, 共 407.6 次阅读, 收获喜欢 1986 次。

关注

评论 8 条评论

发布
用户头像
感觉很有前景,可以学习下
2020-04-25 18:56
回复
用户头像
Linux 内核会用 Rust 重写吗?我觉得不会。
2020-04-20 17:31
回复
不会,他们重新写了一个类unix系统,不取代linux哈哈哈哈哈哈哈
2020-04-25 20:35
回复
用户头像
标题是“Rust 能够取代 C 语言吗?”,也没回答这个问题的意思啊
2020-04-20 10:22
回复
英文标题的意思是Rust生来就是为了取代C语言,我们在翻译过来之后选择对这个标题作了处理,这样不会过于让读者反感,而是去思考下是否存在这个可能,以及Rust的发展前景。
2020-04-20 10:52
回复
曲解过头了, 可以换个委婉的说法, 但应直观保留原本的意思, 比如 "Rust 想要取代 C 语言" 之类的, 译者子的想法可以在译文中加上"译者注:..."
2021-03-15 13:49
回复
用户头像
在最后举例用rust写业务,没有Java、PHP等方便吧
2020-04-20 10:02
回复
生态的建立需要一个时间过程,目前看Rust最大的优势在于有很多大公司在推动它的应用。
2020-04-20 10:50
回复
没有更多了
发现更多内容

Acrobat Pro DC 2023 下载 含激活补丁

Rose

文献解读-多组学-第十七期|《基于多组学分析和综合模型的三阴性乳腺癌腋窝淋巴结转移预测》

INSVAST

基因数据分析 生信服务 多组学

Navicat Premium 15 for Mac/Win 中文安装包下载

你的猪会飞吗

mac单机游戏

公开课 | 利用AI智能体实现自动化公开课

测试人

软件测试

SecureCRT下载,securecrt 破解版,终端SSH仿真工具

Rose

Final Cut Pro v10.8.0 中文版 Mac上FCPX经典视频剪辑软件

Rose

PDF Reader Pro for mac(全能pdf编辑阅读软件)v4.0.3直装激活版

Rose

2024 「全球软件研发技术大会】-刘兴东分享京东的AIGC革新之旅

京东科技开发者

为何我们决定从零开始创建 NGINX Gateway Fabric

NGINX开源社区

开源 开源软件 NGINX Ingress Controller API 开发 Kubernets

IBM SPSS Statistics 26破解版下载 spss统计软件

Rose

Java开发分析软件,JProfiler破解版【永久激活版】

Rose

Termius for Mac(跨平台SSH客户端) v8.4.0多语言版

Rose

VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS ConnectX-3 网卡定制版 (集成驱动版)

sysin

macos esxi OEM ConnectX-3 网卡驱动

极具未来感的京东.Vision来了!最潮的人已收藏!

京东科技开发者

Mac数据库软件,Navicat Premium 破解版,Navicat Premium 15下载

Rose

低代码技术革新:高效构建现代人事管理系统

天津汇柏科技有限公司

低代码开发

从CVE-2024-6387 OpenSSH Server 漏洞谈谈企业安全运营与应急响应

京东科技开发者

人工智能赋能教育:华为云推动宝安中学迈进教育+AI新时代

最新动态

深度解析 PostgreSQL Protocol v3.0(三)— 流复制(上)

KaiwuDB

postgresql KaiwuDB 流复制

利用AI智能体实现自动化公开课

霍格沃兹测试开发学社

大模型文档神器:合合信息大模型加速器

herosunly

大模型 合合信息 AIGC 文档神器 合合信息大模型加速器

数字身份管理发展趋势:访问控制智能化

芯盾时代

AI 数字身份 iam 统一身份认证 访问控制

OpenAI进军AI健康领域;首款搭载Apple Intelligence的智能家居设备将是桌面机器人|AI日报

可信AI进展

人工智能

淘宝商品详情api接口:快速获取商品主图,价格,

技术冰糖葫芦

API 文档 API 开发 API 协议 pinduoduo API

IDA Pro 7 静态反编译工具

Rose

Cornerstone for Mac(最好用的SVN管理工具)v4.2永久激活版

Rose

Advanced RAG 10:引入检索评估、知识精练的 CRAG 技术详解

Baihai IDP

AI 白海科技 LLMs 企业号 7 月 PK 榜 rag

Rust能够取代C语言吗?_编程语言_Evrone_InfoQ精选文章