程序员为什么那么喜欢路斯特
浏览:180 时间:2022-9-24

2020年开发者调查结果再次出现,Rust成为参与该计划的65,000名程序员中最受欢迎的语言之一。

Rust自2016年以来一直位居第一,表明使用它的开发者喜欢它。目前使用Rust的86.1%的受访者表示,他们希望明年继续使用Rust。Rust连续5年排名第一,所以我认为应该有特别之处。

几个月前,我们请Stack Overflow的主要Rust贡献者Jake Goulding(又名Shepmaster)解释代码人为什么这么喜欢Rust语言。他说:“简而言之,Rust解决了许多其他语言的问题,存在有限的缺点。

对Rust语言的评价也很多。以下是用户在网络盾整理的Rust聊天室和Rust论坛上发表的评论,讨论了Rust对其他语言的代码人的好处(以及问题)。我们想听更多用户的来信。

Rustaceans本身(包括2名Rust核心团队成员)的评论:

“新的、经过验证的功能。有些语言增加和简化了现有的概念,但有些用户认为Rust实际上在以编程语言做新的事情。而且那不是为了炫耀而做新的事情。他们认为,这种设计选择解决了现代编程的难题。"

zicog:“Rust是我40年来唯一特别使用的语言,实际上引入了真正的新功能。因此,您可以使用编译后的实际系统编程语言保护内存使用的整体思路,而无需垃圾收集或复杂的系统操作。`

DenysSguret:“当发现非常强大的功能(例如在env变量的伪装下阅读编译的上下文元素)时,甚至当没有编译时可以解决的丑陋不匹配时,我也充满热情。”

Janriemer: " pm工程师Chris Dickinson的话对我来说是一个完美的总结。因为我当时也是这么想的。当时我还不知道牙齿的话。我对Rust的最大称赞是无聊。这是了不起的称赞。Rust是一种看起来像使用者经验设计者开发的编程语言。他们对语言有明确的愿景(原因),在听取社区真正需要的同时,仔细选择要添加到语言的内容和要返工的内容。“完全支持开发人员的工作流程,作为一个一致的整体,没有单一的结尾。”

Skysch:“我从Haskell到Rust。Haskell认为这是一种非常优雅、安全的语言。对我来说,最大的区别是Haskell的高性能代码和一般“干净”代码的区别大于Rust的区别。大多数Rust代码看起来与大多数其他Rust代码相似,即使它们运行良好。如果您在与某人通常执行的任务不同的库和目标上执行任务,Haskell可能很快就会生疏。语法上的小差异可能导致行为上的大差异,Rust在牙齿基线上具有更高的一致性。”

PubNub的设计师Jay Oster:“除了安全性和性能之外,还具有以下功能:

一般性质

代数类型

功能和命令范式

可能是世界上最好的依赖性管理和部署工具。

事实上解决了“依赖痛苦的情况”的问题。

对在线文档、测试和基准的卓越支持

巨大、不断发展的图书馆、抽象、工具生态系统、

节目宏命令

FFI现有代码互操作性;

支持数十个平台(附加模块即将推出!);

也有健康可靠的开发者经验。

Rust是选中所有框的唯一语言。

内存安全性

有形安全

没有数据竞争

事先编译

建立和鼓励零成本抽象。

最短运行时间(垃圾收集机制、JIT编译器、无虚拟机)

低内存使用量(在资源有限的环境中节目运行,如小型微控制器)

裸机市场定位,例如,操作系统内核或驱动程序编写:使用Rust作为“高级汇编程序”

Daboross:“编译时间保证:考虑“静态类型的语言”时,请考虑Java、C或TypeScript等内容。在编译时检查代码类型是否正确,并在运行时向编译时发送一系列错误。Rust在牙齿方面更上一层楼!编译时间检查扩展到线程安全、所有权语义和验证。

枚举意味着可以声明一组编译时数据可能存在的变体,访问该数据时必须考虑所有可能性。特性意味着当我的代码是模板/公用时,它具有所需的确切功能。

Rust与早期版本非常兼容。允许运行为Rust 1.0编写的代码。同样,您可以编写代码,通知用户下次更新Rust时无需更新。

此外,除Rust本身外,语言可用性库也提供相同的保证。考虑两个茄子事实。

1、类型检查仅考虑功能的签名。不需要依赖实施来确保请求的正确性,如Scala或Haskell所做

2、广泛的类型系统意味着接口的错误使用将成为类型错误,而不是运行时错误。

由于牙齿的两个茄子原因,库在发布新界面时可以100%地保证向后兼容性。要在python、Java、JavaScript、Java或Haskell中保持向后兼容性,必须特别注意事物的贯彻。在Rust是免费的。如果未更改功能签名,则保持不变。”他说

Peter varo:“Rust有C或C这样的基础,并发现了所有这些优点(例如控制、大小、速度等)的优点。同时,它与哈斯克尔有惊人的功能传承。它仍然是必需的,因此大多数人都可以使用,并且和Python一样灵活。例如,“鸭子打字”等概念在编译时发生(即特征边界),但不是过时的,是面向对象程序设计模型和众所周知的所有问题。

最后,最不重要的是简洁的语法、以少量语言提供的功能、标准库的完整性、一致性和文档质量(包括影响初学者和高级用户学习材料的因素)。”他说

blonk:“Rust/cargo使您可以专注于实际代码,而不是构建系统。无需整天阅读“其他实施系统”。与Rust的交叉编译非常简单,在阅读如何做的时候,我会说:“等一下,我会失去一些东西。”。(威廉莎士比亚,《哈姆雷特》)(威廉莎士比亚,《温斯顿》)。"

不在Rust之外的时候,有些听起来像空口号,但是开始使用它,你会发现有很多真相。

在花费时间编译代码时,无需调试代码即可节省时间。

不要再担心大规模重新配置。重新配置的代码编译后工作正常。

实际上,强制执行适当的多线程处理(例如,死锁仍然可能存在,但崩溃错误类型要困难得多)。

我发现我做的模板代码少得多。并且通常需要可以隐藏在其他模块中的模板代码,以避免干扰实际的应用程序节目逻辑代码。最常见的例子是错误类型转换。”他说

PubNub的设计师Jay Oster:“好像在整个职业生活中徘徊着完全黑暗的环境,突然点燃了两个茄子事物。”

你并不完美。你会犯错误的。这些错误可能会导致很多问题。

不必是这种方式。

我看到了一些共同的异议,有些人声称他们实际上是完美的,实际上写了完美的代码,一切都是红木的,其他所有人都不明白为什么对Rust那么感兴趣。但是对于牙齿老山羊,他们显然还没有意识到问题不仅仅是他们自己。其他人。这是规模经济的问题。

换句话说,如果有时间和努力关注所有细节,细心编写所有美丽的代码,而不管语言或实现细节,我自己就可以孤立地编写无缺陷的错误代码。(大卫亚设,美国电视剧)但这不重要。一旦开始依赖别人编写的代码或新的贡献者进行修改,我所谓的所有完美保证现在都不符合现实。(阿尔伯特爱因斯坦)“按规则精确度”是不能扩展的。

惯例会有缺点,会花费不切实际的时间和精力自动化不应该存在的创可贴。(约翰肯尼迪,时间)“哈!”现在我意识到,通过将相同的规则直接应用于语言和编译器,实际上可以得到更强的保证。

最重要的是,如果愿意,可以获得与微调的手写程序集类似的性能。可以吃蛋糕,也可以吃蛋糕!”他说

Daboross:“作为库类的作者,复杂的功能/通用系统意味着可以创建复杂但易于使用的界面。这些接口不能错误使用。也就是说,不需要执行运行时检查,也不需要考虑问题案例,因为用户无法编写。

作为库类的用户,丰富、广泛的模板生态系统允许您在不同的领域编写代码,而无需深入研究每个领域的细节。不需要知道JSON解析器或编写器如何使用Serde,我的知识不足决不会成为错误的来源,因为我获得了编译时间错误而不是运行时错误。

使用Rust的时候,我真的觉得受到了照顾。软件包中发生了很多小事情,如类型错误,升级、传输接口中意外的字符串、随机运行时错误等,我在Rust中完全没有这些错误。(阿尔伯特爱因斯坦,美国电视电视剧,创作)我能想到算法!