< 返回版块

Mike Tang 发表于 2025-01-24 22:42

你认为Rust最终会变得跟C++一样复杂吗?

高赞回答。 ChevyRayJohnston: 根据我的标准,路线图上没有任何功能会使语言过于复杂。现在甚至还远远没有达到那个地步。Rust在我的感觉中,它的特征很少有冗余或重叠的地方,实际上在特征方面往往显得相当克制。

我喜欢Rust的一些复杂特性在不需要时或用途非常明显时是“隐藏”的:

我不需要在每个引用上标注生命周期注释,只有当我所做的事情的复杂性需要时才需要这样做。 我在let绑定上不需要声明类型,通常上下文会为我处理这部分。 我可以在工作代码分支中插入todo!()来让类型检查器闭嘴,以便我解决问题。 泛型和生命周期一样,调用时通常也不需要声明,因为上下文通常是显而易见的,复杂性不会挡住你的视野。 整数/浮点字面量也不总是需要后缀,因为上下文通常是明显的,它会做它应该做的事情。但当你需要这种复杂性时,你可以调用它。

Rust的大部分复杂性集中在类型定义和函数签名上,有时在编写高度优化且安全的代码时会显得相当吓人,特别是如果它是泛型的,简直是笑话。但一旦你完成了这些工作,实际上使用这些代码可以非常明显和简单,特别是在类型推断超速运作的情况下。

宏是隐藏这种复杂性的另一种方式。样板代码通常只是噪音般的繁琐工作,大量无意义的内容干扰了你实际客户端代码的含义。在宏和泛型之间,有很好的工具可以编写极其高效的代码,并将这种复杂性从前端代码中隐藏起来。

我个人喜欢写一大块Rust代码,它看起来几乎像JavaScript或Lua一样动态,但实际上它生成的却是与C++速度相当的极速机器码。Bevy的ECS系统就是一个很好的例子,操作起来非常简单,但生成的代码却近乎奇迹。

这种按需复杂性对我来说非常讨人喜欢,也是我喜欢这个语言的一个重要原因。它并不总是成功做到这一点,但通常情况下它确实做到了,我希望如果增加新的复杂功能,它们会继续遵循这种模式。我不介意复杂性,我只是希望它在不需要时就消失。

https://www.reddit.com/r/rust/comments/1i8fcho/do_you_fear_rust_becomes_a_complex_language_like_c/

Rust语言商标政策更新说明

Rust编程语言的商标政策的最新更新。文章强调,Rust和Cargo的商标主要用于确保社区能够区分出正式的Rust项目和非正式的衍生品。更新的政策旨在使非商业使用更为宽松,同时对商业使用施加了更多限制。以下是几个关键点:

非商业使用:个人和社区可以自由使用Rust和Cargo的名字和标志来支持项目,例如在个人博客、社交媒体头像等地方使用这些标志,只要不暗示有Rust Foundation的官方支持或认可。

商业使用:商业用途(如销售带有Rust标志的商品或组织盈利性活动)需要获得许可。特别是,对于以盈利为目的的事件或使用Rust标志的产品,需事先得到授权。

商标限制:政策明确禁止修改Rust标志的使用,除非是用于表示社区运动的支持,并且这种修改需要获得Rust Foundation的批准。

透明度和反馈:Rust Foundation强调了政策的透明性,鼓励社区成员通过反馈形式提供意见,以确保政策的完善。

此外,文章还提到,不同于其他编程语言,Rust的商标政策是为保护Rust社区的完整性和质量而设计的,确保用户能够信任他们使用的软件源自真正的Rust项目。文章还包括了一些常见的使用案例的快速参考,帮助理解政策的具体应用。

https://rustfoundation.org/media/rust-language-trademark-policy-updates-explained/

--

From 日报小组 Mike

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页