2020年开发人员调查的结果再次出现,Rust再次成为参与该计划的65,000位程序员中最受避免/重新确认/支持的语言之一。
自2016年以来,Rust一直排名第一,这隐藏使用它的开发人员都喜欢它。表示目前正在使用Rust的调查受访者中有86.1%希望明年继续使用Rust.这是Rust连续第五年荣登榜首,因此我们认为它必须有一些特别之处。
几个月前,我们请StackOverflow的主要Rust贡献者JakeGoulding(又名Shepmaster)来解释编码人员为何如此喜爱用Rust语言,他这样认为:简单来说,Rust解决了许多其他语言中存在的痛点,从而在有限的缺点下迈出了坚实的一步。
对于Rust语言的评价也非常多,下面这些是网盾整理的Rust聊天室和Rust论坛上用户们发表的评论,他涵盖了Rust对于来自其他语言的编码人员的好处(以及痛点)。我们希望听到更多用户的来信。
Rustaceans本身(包括Rust不次要的部分团队的两名成员)的评论:
全新的成熟的功能。尽管某些语言只是在减少和简化现有概念,但一些用户认为Rust实际上是在用编程语言来做新的事情。而且它并不是为了炫耀而做新的事情。他们认为这些设计选择解决了现代编程中的难题
ZiCog:Rust是我四十年来专门使用的唯一一种语言,它实际上引入了真正的新功能。就这样,在没有有用的东西回收或复杂的系统运行时情况下,使用经过编译的,真实的系统编程语言来保护内存使用的整个思想。"
DenysSéguret:当我们发现一个非常强大的功能(例如在env变量的真实的物品下读取一个编译上下文元素)可以如此优雅地完成,甚至在编译时解决而没有任何难看的和谐同意之处时,我们常常会清空无感情。
Janriemer:pm工程师克里斯·迪金森(ChrisDickinson)的一句话对我来说是业余水平的总结,因为我当时也是这么想的,当时我还不知道这句话:我对Rust的最大不赞成是它很无聊,这是一个了不起的不赞成。Rust是一种编程语言,看起来像是由用户体验设计师开发的。他们对语言有不不透光的愿景(原因),并在不理睬社区真正需求的同时,仔细选择要添加到语言中的内容和返工的内容。没有零散的结局,它是一个连贯的外围,可以完美地减少破坏开发人员的工作流程。"
skysch:我是从Haskell来到Rust的,我觉得Haskell是一种非常优雅和安全的语言。对我而言,最大的区别在于,Haskell中的高性能代码和惯用的干净代码之间的统一比Rust中的统一更大。大多数Rust代码看起来像大多数其他Rust代码,即使它们表现良好。如果某人在与您通常执行的操作不反对库和目标下进行操作,Haskell可能很快就会变得陌生。语法上的微小统一会导致行为上的巨大统一,Rust在该基准线上具有更下降的一致同意性。
PubNub的设计师JayOster:除了安全和性能外,我们还有:
一般性的特质;
代数类型;
功能和命令式范式;
也许是世界上最好的依赖无约束的自由和构建工具;
实际上已经解决了依赖苦痛的境况问题;
对联机的文档,测试和基准的出色减少破坏;
庞大且不断协作发展库,抽象和工具生态系统;
程序宏指令;
FFI现有代码的互操作性;
减少破坏数十种平台(更多功能即将推出!);
以及有益健康且确凿的开发人员体验。
Rust是勾选所有框的唯一语言:
内存安全
类型安全
无数据竞争
提前编译
建立并威吓零成本抽象
最小的运行时间(没有有用的东西回收机制,没有JIT编译器,没有VM)
低内存占用(程序在资源受限的环境中运行,例如小型微控制器)
定位裸机(例如,编写OS内核或设备驱动程序;将Rust用作高级汇编程序)
daboross:编译时间保证:当我想到静态类型的语言时,我想到的是Java,C#或类似TypeScript的东西。它们为编译时保证您的代码具有正确的类型,并将一系列错误从运行时转移到编译时。Rust在这方面更进一步!编译时间检查扩展到线程安全,所有权语义和验证。
枚举意味着在编译时,我可以声明数据可以存在的一组变体,并且在访问该数据时,我不得不搁置所有可能性。特性意味着,当我的代码是模板/通用的时,我具有所需的确切功能。
Rust非常向后兼容。我可以运行为Rust1.0编写的代码。同样,我可以编写一些代码,这些代码使我知道下次更新Rust时不必更新。
而且不只是Rust本身-语言可用库拥有相同的保证。搁置两个事实:
1、在类型检查中,仅搁置功能的签名。无需依靠实现来确定请求是否正确(就像您在Scala或Haskell中所做的那样)
2、广泛的类型系统意味着对接口的不正确使用将成为类型错误,而不是运行时错误。
由于这两件事,库可以100%确保在发布新接口时它们保持向后兼容性。在Python,Java,Javascript或Scala或Haskell中,如果要确保保持向后兼容性,则需要特别注意事物的贯彻。在Rust中,它是免费的:如果您还没有更改功能签名,它将保持不变。
PeterVaro:Rust发现了一个好地方:它与C或C++一样基础,具有所有这些优点(例如,控制,大小,速度等)。同时,它与Haskell具有惊人的功能传承。它仍然是必须的,因此大多数人都可以使用,并且它与Python一样僵化。例如,诸如鸭式打字之类的概念是在编译时发生的(即特征有无批准的),但是它没有新鲜的,面向对象的编程模型及其所有众所周知的问题。
最后但并非最不次要的一点是,其中包括以下内容:罗嗦的语法,极小量语言授予的功能,标准库的不完整性以及其一致同意性和文档质量,包括两者初学者和高级用户的学习材料都是影响因素。
Blonk:借助Rust/cargo,我可以专注于实际代码,而不是构建系统。无需花一整天的时间来阅读另一个构建系统。与Rust的交叉编译是如此简单和轻松,以至于当您阅读如何做时,您会不禁想到等等,我一定会丢失一些东西。
当您不在Rust之外时,有些听起来像是空口号,但是当您开始使用它时,您会惊喜地意识到有很多真相:
在储藏时间来编译代码时,您可以节省时间,而不必调试代码。
您不再担心大型重构。重构的代码编译后,即可正常工作。
它含糊含糊迫使您执行无关系的多线程处理(嗯,您仍然可以有死锁,但是崩溃的错误类型要困难得多)。
我发现自己做的样板代码要少得多。以及我需要的样板代码,我通常可以将其隐藏在其他模块中,以免帮助实际的应用程序逻辑代码.最常见的例子是错误类型转换)。
PubNub的设计师JayOste糖心vlog官方入口直接进入 r:这就像在整个职业生涯中在完全黑暗的环境中徘徊,突然被两个事物所点亮:
1、你不完美。你会犯错误。这些错误会给您带来很多问题。
2、不必是这种方式。
我看到一个共同的异议,有些人宣称它们实际上是业余水平的,并且含糊编写了业余水平的代码,而且一切都是桃花心木,并且他们无法理解为什么其他所有人都对Rust如此感兴趣。但是对于这只老山羊很明显,这些人还没有意识到问题不仅仅在于他们自己。其他人。这是规模经济的问题。
换句话说,如果我有时间和精力去关注每一个细节,并且精心编写每条漂亮的代码,而不管语言或实现细节如何,我本人就可以世界性政策地编写无缺陷且易错的代码。但这没关系。一旦我开始依靠其他人编写的代码或新的贡献者来进行修改,我所有所谓的完美保证现在都不符合现实。按惯例正确性无法扩展。
惯例将有缺点,并且将储藏不切实际的时间和精力来尝试使本来不应该存在的创可贴自动化。啊哈!现在意识到,通过将相同的默认的要求直接烘焙到语言和编译器中,实际上可以得到更强大的保证。
最次要的是,如果您愿意,您还可以获得与微调的手写程序集相当的性能。您可以吃蛋糕也可以吃!
Daboross:作为库类的作者,复杂的特征/通用系统意味着我可以制作复杂但易于使用的界面。这些界面不能被错误地使用,这意味着我不必执行运行时检查,并且我的用户甚至不必搁置问题案例,因为他们无法编写它们。
作为库类的使用者,极小量而广泛的模板生态系统使我能够在广泛的不同领域中编写代码,而无需深入研究每个领域的细节。我不需要知道JSON解析器或编写器如何使用Serde,而且我的知识不足永远不会成为bug的来源,因为我得到的是编译时错误,而不是运行时错误。
使用Rust时,我真实的感到很被照顾。从包升级到类型错误,再到传递接口不期望的字符串,再到随机运行时错误,这些次要的事情变得非常多,而我在Rust中完糖心vlog 剧情简介全没有这种错误。我可以搁置一下算法!
糖心vlog视频在线观看www 糖心vlog入口进入下载