在过去的几周里,我一直在探索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。
- 事实证明,它非常适合云服务。微软在物联网产品中使用了Rust:https://github.com/Azure/iotedge/tree/master/edgelet.
- 亚马逊正在利用Rust通过Firecracker为AWS产品的各个部分提供动力。
- 在客户方面,Rust在AWS上得到了极大的成功,包括解析日志的速度如此之快,以至于可以在AWS Lambda的免费层上完成工作。
- Deno https://github.com/denoland/deno用V8、Rust和Tokio构建的JavaScript和TypeScript的安全运行时。
- 火狐浏览器(Firefox browser )就是一个典型的例子。
- VSCode编辑器附带了用Rust编写的文件搜索。
- 成熟的区块链协议-https://github.com/purpleprotocol/purple
- https://purpleprotocol.org/
早些时候我认为大多数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】
- 登录 发表评论
- 13 次浏览
最新内容
- 4 days 15 hours ago
- 4 days 17 hours ago
- 4 days 17 hours ago
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week 5 days ago
- 1 week 5 days ago