关注微信公众号《云原生CTO》更多云原生干货等你来探索
专注于 云原生技术
分享
提供优质 云原生开发
视频技术培训
面试技巧
,及技术疑难问题 解答

云原生技术分享不仅仅局限于Go
、Rust
、Python
、Istio
、containerd
、CoreDNS
、Envoy
、etcd
、Fluentd
、Harbor
、Helm
、Jaeger
、Kubernetes
、Open Policy Agent
、Prometheus
、Rook
、TiKV
、TUF
、Vitess
、Argo
、Buildpacks
、CloudEvents
、CNI
、Contour
、Cortex
、CRI-O
、Falco
、Flux
、gRPC
、KubeEdge
、Linkerd
、NATS
、Notary
、OpenTracing
、Operator Framework
、SPIFFE
、SPIRE
和 Thanos
等


Rust 是未来的 5 大原因

在 Stack Overflow 2020
调查中,Rust
被选为最受欢迎的编程语言第一名,这要归功于 86%
的开发人员表示他们会继续使用它。对于语言创造者来说,这并不是什么新鲜事——自 2016
年以来,Rust
一直在这项调查中获胜。在 Tiobe
指数上, Rust
的受欢迎程度也在上升——在 9
月的最受欢迎语言中排名第 18
位。它在我们自己的基于情感分析的函数式编程语言排名中也没有失败,在最积极的情感类别中获得第一名。
https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-languages-wanted
https://www.tiobe.com/tiobe-index/rust/
https://scalac.io/ebook/top-functional-programming-languages-ranking-based-on-sentiment-analysis/introduction/
由前 Mozilla
开发人员Graydon Hoare
于2006
年创建,作为 C++
语言的替代品,Rust
正慢慢在开发人员的世界中声名鹊起。它现在用于创建 Web
软件、嵌入式计算机和分布式服务或命令行。这种受欢迎程度的适当证明是,全球巨头微软正在慢慢地从 C++
语言(由于安全问题数量不断增加)转向 Rust
。
是什么让 Rust
在程序员中如此受欢迎,当他们有这么多其他语言可以使用时?主要原因之一是 Rust
解决了许多在不同语言中可见的问题——以至于一些开发人员说 Rust
的创建者一定已经考虑到了C++
中可见的所有潜在问题。究竟是什么让 Rust
如此独特,学习 Rust
是否值得?以下是我们认为 Rust
是我们的未来的五个原因。
Rust 与其他语言
Rust
相对于目前开发人员所熟知的许多语言具有其优势。让我们来看看其中的一些。
Rust 与 C++:优势
与 C++
相比,Rust
只是更安全。Rust
保护自己的抽象和开发人员所做的抽象,而 C++
缺少这两个选项。C++
中的特定错误可能导致任意行为,而 Rust
可以帮助您专注于真正重要的事情。是的,C/C++
仍然被认为是最流行的编程语言之一,但它经常会导致一些问题。Rust
更容易上手,学习曲线不是很陡峭,Rust
没有 C++
那样,而它更具有并发性,并且性能也非常好。Rust
允许程序员编写不安全的代码,但默认为安全代码(如果您选择加入,您可以使用 unsafe
关键字在 Rust
中设置不安全代码的块。
Rust 与 Java:优势
当谈到 Java
时,事实证明这种编程语言比 Rust
慢得多,此外,启动时间和更小的内存占用优势明显可以看出。Java
使用垃圾收集进行内存管理,这会降低性能。
Rust 与 Python:优势
Rust
设计得很好。Rust
允许在 lambda
中放置语句,并且一切都是表达式,因此更容易组合语言的特定部分。Python
缺少它。Rust
没有类,所以面向对象不像 Python
那样进化。Python
还遇到了编写更多测试、生产中断或运行时容易崩溃。而Rust
使识别和修复可能的错误变得可能。
Rust vs Go:优势
Go
缺乏表现力。Rust
有一个灵活且富有表现力的系统,允许定义新的容器类型,这些容器类型可以包含不同类型的元素、泛型、特征、代数数据类型。而Go
减少了对资源和内存安全的控制。
为什么 Rust 是未来?
1. Rust 提高了内存安全性。
困扰开发人员的最大问题之一是内存管理问题。在其他语言中很容易遗漏代码问题,这反过来又会产生可怕的错误代码——并且需要时间来查找和修复它们。一个更大的问题是编码错误何时可能导致安全漏洞——在当今世界,这简直太危险了。大型流行网站或应用程序中发生数据安全漏洞的案例比我们预想的要频繁得多。原因?很多时候,应用程序漏洞或配置错误都将导致这类情况的发生。
Rust
被认为是内存安全的。Rust
代码不能有任何dangling
指针、缓冲区溢出或任何其他类型的与内存相关的错误。它让你定义应该如何管理内存以及如何在其中布置值,在不损失性能的情况下兼顾控制和安全,并使其成为 Rust
的第一大优势
提高内存安全性是 Rust
开发人员的主要目标之一,也是该语言最重要的卖点。他们的代码编译器很严格,每一个用到的变量或内存地址都会自动检查。如果发现任何语法错误、空值、dangling
修饰符或内存安全问题,Rust
将不会编译代码并警告不安全代码,以便快速发现和修复主要问题。它是如何做到的?
在 Rust
中,每个值都有一个ownership
。当一个值被传递或返回时,ownership被赋予一个新的范围——一次只有一个。如果值的ownership移出范围,则该值将被删除。这样,Rust
会跟踪内存并自动释放它——并防止所有错误进入主代码。这意味着在运行时没有意外!该系统将在编译时分析内存管理,帮助更快地识别和修复错误,并使垃圾收集变得不必要。
但还有更多关于内存的内容。构建高级系统通常与大量计算密集型工作相关并创建大量临时内存。这种卸载会对任何 Java
虚拟机性能产生负面影响,而且许多编程语言(包括 Scala
)根本无法处理它。
然而,Rust
可以。它支持编写内存高效的代码,无需管理内存或专门提供现代便利(例如闭包),并且运行时运行时开销最小或没有运行时开销,可用于实时或嵌入式项目,并可轻松与其他语言或项目集成。如果这个还没有说服你,让我们更进下一步。
2. Rust 的社区不断壮大。
当然,Rust
的社区和库的数量远不及 C++
等。但随着 Rust
语言的日益流行,加入的开发人员和热情的人的数量也在增加。社区创建的框架、库和开发工具(称为crates
)的数量已经接近 57k
,并且每天都在增加。
除了不断增长的工具和框架库之外,Rust
还拥有一个活跃且受欢迎的社区。无论您是需要解决问题的帮助还是寻找使用 Rust
的技巧和窍门,您都有几个地方可以访问。除了社区聊天和用户论坛,Rust
还有一个活跃的 subreddit
部分。
看几个新兴社区项目的例子:
redox
,一个用Rust
编写的操作系统;cgmath
,一个线性代数和计算机图形库;Iron
,一个并发 Web 框架;Doom renderer
redox: https://github.com/redox-os/redox
cgmath: https://github.com/bjz/cgmath
Iron: https://github.com/iron/iron
Doom renderer: https://github.com/cristicbz/rust-doom
3. Rust 快速灵活。
Rust
被认为是一种相对较快的语言。当使用通用代码时,它可以比 Scala
运行得快得多,尤其是在性能关键任务中。很有可能在某些领域它的运行速度甚至比 Scala
或 Java
快三倍。获取和使用外部包很容易,而且 Rust
的构建工具使编码变得简单。
有几个因素使 Rust
非常快:
它是静态类型和编译的,使编译器可以优化代码以提高速度
它提供特征的静态调度:类似于
C++
模板,但更清晰它明确跟踪变量的所有权。
Rust
不假设任何带有地址的变量都可以随时更改,因此可以在不对代码产生负面影响的情况下进行优化。它期望变量默认是不可变的(因此优化更容易)
它提供代数数据类型,也很适合优化
它在没有任何开销的情况下存储数据,没有运行时或由于缺乏垃圾收集而突然暂停
它提供零成本抽象
4. Rust 可以广泛使用
如果有一个项目,除了性能和低级优化(但高级 Rust
函数式编程技术)的重要性之外,还需要一个安全稳定的执行环境,那么请选择Rust
Rust
被认为是一种低级语言,适合最好的系统,以及嵌入式和其他性能关键代码。据信,它还可以用于 3D
视频游戏。
为什么 Rust
如此受到全世界开发者的喜爱?首先,它允许您编写最有可能永远不会出错的代码,因为编译器会检查所有内容。在编译时在其他编程语言中检测到的问题不会出现在 Rust
中。它也有利于编写安全、省时的抽象,它的安全性几乎消除了使用不变性的需要。
Rust
也被认为是一种用于关注性能、速度和安全混合质量的新兴创新领域的语言。
Rust
是一种流行的加密货币和区块链编程语言。这是一个受欢迎的选择,因为它易于理解和学习,并且提供了性能和安全性的独特组合——后者正是开发人员正在寻找的东西。Rust
还为这些开发人员提供了工具,以更快地开始交付他们的代码。选择 Rust
,加密货币不太可能崩溃,并且比使用另一种编程语言时更安全。在这里您可以找到使用 Rust
的加密货币的相关内容。
https://www.reddit.com/r/rust/comments/a93dv8/cryptocurrencies_written_in_rust/
5. 几家大公司都在使用 Rust
尽管 Rust
是一种相对年轻的语言,但在提高编程安全性和易用性方面,Rust
已经被开发人员认为是正确的一步。但不仅开发人员对 Rust
感兴趣——公司,尤其是大型公司,也已经或计划转向 Rust
。在 5
月份举行的 AllThingsOpen
虚拟会议上,Ryan Levick(
微软云开发倡导者)解释说,Rust
语言正在业界解决了当今语言当中一些让人苦恼的问题”。虽然微软不打算很快停止用 C++
编写,但它的许多基础设施正在慢慢转移到 Rust
。
微软并不是唯一一家意识到改用 Rust
语言的潜在好处的公司——使用 Rust
语言的公司包括 Dropbox、Sentry
、亚马逊和 Mozilla
。
结论
纵观 Rust
可以提供的所有好处,该系统的受欢迎程度只会越来越高也就不足为奇了。Rust
解决了很多问题,随着开发人员和 IT
领域的主要参与者都认识到 Rust
语言的潜力,可以毫不夸张地说 Rust
有朝一日将成为现代世界中最常用的编程语言之一。
参考地址[1]
参考资料
参考地址: https://medium.com/scalac/5-reasons-why-rust-is-the-future-7ac731085339




