跳转到主要内容
Chinese, Simplified

在过去的几周里,我一直在探索Rust,因为它被宣布为2018年最受欢迎的语言。作为一名Scala/Java开发人员,我开发了许多应用程序,这些应用程序涉及银行领域、web应用程序、移动应用程序、电子商务、社交媒体等,但我没有找到应该在Rust中构建什么样的应用程序?我搜索过Rust的好用例。我发现Rust主要用于系统编程,作为c和c++的替代品。我也检查了一些工作说明,他们中的大多数人正在寻找Rust的区块链开发商。我没有得到满意的答复。我向社区提出了以下问题并得到了答案。

  • 如果我是Scala/Java背景,为什么要改用Rust?
  • 什么样的应用程序应该建立在Rust?
  • 为什么区块链应用程序需要Rust?
  • 我应该在Rust中转换我的c/c++应用程序吗?
  • 有没有流行的应用,建立在Rust的基础上?

如果我们谈论精确的用例,比如Java用于Web应用程序,python用于数据科学,与Rust中的用例相当的是系统编程。比如浏览器引擎,游戏引擎,操作系统,微控制器软件。或者换句话说,基本上,C和C++的东西,你不想切换到像Python这样的语言,是很好的使用Rust的用例。

但这并不意味着它只是这些东西的专利。Rust可能会在任何其他区域牢固地敲打以提高性能。让我们看看一些流行的应用程序,它们使用的是Rust。

早些时候我认为大多数BitStand应用程序都开始使用Rust,因为比特币是用C++编写的,当时C++是最有性能的编程语言,而Buffon链确实需要每盎司的性能。但事实上,诸如高性能、无运行时和增强的安全性等一些Rust特性使其在该领域具有吸引力。RISE的内存和数据竞争安全性使得它很适合使用C或C++,例如公开可用的Web服务。

现在更重要的是,作为一个Scala/Java开发人员,为什么要尝试Rust。原因如下:

  • 可预测的性能和低内存用法:-在Scala中,您必须花费大量时间在Scala编译器中实现优化器、值类和专门化。在Rust中,您基本上不必担心这一点,一切都尽可能优化。
  • Concurrency:-Rust不会编译大多数并发错误。
  • 无空指针e例外情况:-有有一种可能,空值可以从Java库或其他地方潜入到您的程序中。Rust不是这样的。
  • 最小类型系统:-那里没有类,没有继承,没有单例对象,没有隐式等,基本上只有ADT,特性和函数。
  • 无GC,即完全控制数据生命周期、可预测且低内存使用率,并且无运行时暂停
  • 没有虚拟机,只有精简的本地应用程序
  • Rust通常没有共享的易变性,所以线程在Rust中也非常好。
  • 纯Rust依赖项在默认情况下是静态链接的,因此您可以使用创建的二进制文件和库,而无需到处安装Rust。

根据我的研究,我相信Rust可以放在任何地方,你应该开始玩它。我希望你喜欢读这个博客。谢谢!

 

原文:https://blog.knoldus.com/why-programming-community-should-be-serious-about-rust/

本文:http://jiagoushi.pro/node/1452

讨论:请加入知识星球【全栈和低代码开发】或者微信【it_training】或者QQ群【11107767】

Tags
 
Article
知识星球
 
微信公众号
 
视频号