Rust专栏前言:Rust优势和前景展望

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/xiangxianghehe/article/details/102754500

时代的召唤

区块链被宣布作为核心技术的第二天,我们就要好好学习Rust。这是响应党的号召,这是顺应时代的潮流。事实上,目前最有名的基于Rust语言的项目就是脸书的Libra,这是一个区块链界的颠覆性项目,该项目自问世到现在,一直争议不断。巧合的是,就在前两天,脸书CEO在美国国会听证会为Libra辩护:若遭阻止,中国将先发制人。

我认识Rust

我第一次了解到Rust是在2015年的夏天,是csdn对港大专访的那篇文章:专访Elton:浅谈C++、Go的挑战者Rust。那个时候还在成都读书,恰好也认识了Mike,参加了一次他组织的程序线下Rust聚会。不过那个时候自己太菜,去线下聚会,各个大拿讲的东西并不怎么听的懂,不过能感受到大家对Rust的狂热喜欢。

Rust优势

作为一个Rust还在“hello world”水平的我,就不妄议这块了直接搬用Rust官网介绍

  • 高性能

Rust 速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。

  • 可靠性

Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。

  • 生产力

Rust 拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具 —— 包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。

Why Rust

以下部分搬用自当区块链遇上Rust —— 为什么Rust编程语言适合区块链开发

虽然 Rust 是一门系统级编程语言,但并不意味着它只能写底层程序(操作系统、驱动、工具、数据库、搜索引擎等),它的抽象层次之高完全给人惊艳的感觉,实践证明它对问题建模的能力和方便性不比 C++/Java/Python/Ruby 差。但 Haskell 这类超高抽象语言,也不是 Rust 的发展方向。Rust 力求在抽象与现实世界中找到一个平衡。

目前,Rust 已经在 StackOverflow 的年度语言评选中,连续 4 年荣获“程序员最喜爱语言”第一名(2016, 2017, 2018, 2019)。

在这里插入图片描述

图片出处:https://insights.stackoverflow.com/survey/2019

Rust在实现内存安全和并发安全的同时,并没有以损失性能为代价。更牛逼的是,它甚至是用同一套抽象解决了内存安全和数据竞争这两个不同领域的问题。

Rust的零开销抽象让你在享受安全性的同时,又不损失性能。这正是传统的程序员梦寐以求的。

Parity使用Rust,正是因为用Rust写复杂和高性能的代码时,不用担惊受怕。用Rust写程序,远离未定义行为、数据竞争和内存安全问题。更别说,Rust运行速度快,写起来有趣,易读,还几乎没有运行时。

内存安全问题如此困难,因为你无法容易地写出测试来捕获它们。如果你在beta阶段之前没有找出bug,那么这个bug就可能会在代码中呆几年,就像一个读秒的定时炸弹。当然,也有Valgrind这类的工具,来辅助你捕获这些bug。但是如果在执行时,没有触发内存问题,或这类工具生成的代码在运行时,没有执行,那么它们也捕获不到。

所以,通过使用Rust,我们消除了一大类最复杂和最不可预测的错误。

Rust中内嵌了形式化证明理论,不过仅限于对内存安全和并发。Rust在内部用逻辑证明了你的程序是正确的。这也就是你为什么写Rust代码会写得如此有信心的原因。你的每一次编译,都有一组数学理论在为你提供证明服务。

在很长一段时间内,像Haskell这种函数式编程语言的一大杀手级特性就是可以比较容易地进行形式化证明,而这对于传统的命令式编程语言是不可能的(因为有共享可变性,不安全的指针运算,和不可控的副作用)。但Rust的出现,改变了这种情况,作为一个命令式语言,它却走在被证明的路上。到目前为止,标准库的一部分已经被证明是正确的,见链接

综合上述原因,Rust正在成为一个最先进的主流通用目的语言之一,可以用来写可靠的、安全的、高效的程序。

前景展望

知乎“如何看待 Rust 的应用前景?”最高赞回答

猜你喜欢

转载自blog.csdn.net/xiangxianghehe/article/details/102754500