其他
Rust能够取代C语言吗?
来自:InfoQ,译者:无明
Rust 是 Mozilla 基金会的一个雄心勃勃的项目,号称是 C 语言和 C++ 的继任者。一直以来,C/C++ 中的一些基本问题都没能得到解决,比如分段错误、手动内存管理、内存泄漏风险和不可预测的编译器行为。Rust 的诞生就是为了解决这些问题,并提高安全性和性能。
Evrone(一家软件公司)在很多项目中使用了 Rust,我们的工程师们这方面在积累了丰富的经验。在这篇文章中,我们将分享 Rust 的一些主要特性。
主要特性
强静态类型; 无垃圾回收以及通过指针手动控制数据存储位置的能力; 强大的内置静态代码分析器,有助于避免与内存管理和多线程相关的问题; C 语言风格的语法,具有简短的关键字。
Rust 简史
Rust 1.0 于 2015 年 5 月发布。同年,Rust 在 Stack Overflow 发布的最受欢迎开发工具排行榜中排名第三。从 2016 年至今,Rust 一直高居榜首。
为什么要使用 Rust ?
优点:
统一的编译器,提供了一个内置的包生成器和管理器、测试系统和文档生成器; 安全的内存管理,有助于避免分段错误; 抽象能力,让手动内存管理变得更容易; 提供了常见的编译错误修复建议; 只能在非安全代码中使用指针——安全代码中只包括指向确切存在的对象的链接; 与 Mac 和 Unix 家族系统具有良好的兼容性。
不足:
没有类和继承机制,难以编写面向对象的代码; 编译器太过严格,有时候对内存地址的限制过多。
Rust 的使用场景
Redox,一个基于微内核的 Unix 家族操作系统,该操作系统中的大部分软件也是使用 Rust 开发的; Servo,多线程 Web 引擎; Firecracker,用于无服务器环境的微虚拟化系统。
使用 Rust 开发的区块链系统
Parity.io——以太坊和比特币的一个客户端; Polkadot.network——异构区块链网络; Exonum,一个基于区块链的项目框架; MaidSafe,一个分布式数据处理和存储系统; Solana,一个用于开发 Web 区块链应用程序的平台…
使Rust 可以用来开发 Web 项目:
其他工具还包括:rocket、conduit、gotham、pencil。
一些成功的 Rust 项目Dropbox,一种云存储服务;OpenDNS,一种用于创建公共 DNS 服务器的 Web 服务;
Coursera,由斯坦福大学 IT 教授创建的教育门户网站;
使用 Rust 开发的机器学习项目。
使用 Rust 开发的神经网络似乎非常有前景。因为 Rust 的高性能和底层内存控制能力,Rust API 可以成为神经网络领域非常流行的开发工具。
但目前使用 Rust 开发机器学习应用还处于实验阶段,Rust 生态系统还缺少可用于开发类似 Python 神经网络的库。
Rust 的未来
在 Evrone,我们使用 Rust 开发了一个大型的连锁餐厅 ERP 系统。其中微服务部分使用 Rust 开发,为用户提供离他们最近的餐厅的数据。
Rust 的另一个应用——也就是我们的持续集成服务 Vexor。在这个服务中,Rust 负责任务的管理和调度以及日志管理,并作为任务隔离执行代理的基础。
-END-
推荐阅读
【01】C语言指针终极指南!(附详尽图示和代码)【02】如何把C++的源程序改写成C语言【03】一文教你搞懂C语言的Q格式使用【04】C语言中的结构体和共用体(联合体)【05】C语言宏定义的妙用!用完软硬件效率蹭蹭涨!