为什么我们没有选择Rust?( 二 )


由于Rust提供了非常全面的错误消息和文档 , 我们很容易忘记它实际上是一种非常底层的语言 。 我们被社区和种种工具所吸引 , 以至于忘记了底层的语言实际上很糟糕 。 也许Rust远非大多数底层语言可比 , 但请记住垃圾收集器很棒 。 在使用GC的时候 , 我们无需处理任何可能会导致Rust出现问题的工作 。 也许这会降低性能 , 但是对我来说 , 能够快速编写代码的能力远胜于额外的性能 。
评论1:我不太理解文中有关异步的讨论 。 由于Rust对于线程、Sync、Send和async接口函数的要求 , 导致异步编程非常困难 , 但我感觉他们是在没有理解需求的情况下试图将代码改成异步 。 实际上根本没有必要 。 你也可以使用传统的回调函数方式使用异步API , 不需要使用Rust的异步机制 , 你也可以使用线程 。 如果你不喜欢Rust的异步(或者不会用) , 那就不需要用 。
诚然 , 现在Rust的async有许多不招人喜欢的地方(许多问题已经在解决中) , 但直接用线程不就好了?
读完之后我认为切换到F#(或OCaml)是一个正确的选择 , 因为这样可以得到语义相近的好处 。 但批评Rust的一些论点实在不敢苟同 。 似乎就是在说 , 不用Rust是因为Rust没有好用的GCP库 , 而他们不想自己写垃圾回收 , 但仅此一点貌似篇幅不够 , 所以加了许多别的东西 。
评论2:【为什么我们没有选择Rust?】我认为作者遇到的许多问题都是因为他想用Rust来写F#或OCaml的代码 。 尽管Rust建议你将应用程序按照“全局函数式”的方式组织(例如 , 避免使用共享可变状态) , 但如果你想使用小范围的函数式概念:递归、高阶函数等 , 那将是一场灾难 。
而最终他遇到的异步递归或pinning的问题有一半是由于他不够专业 , 因为我写了将近一年的Rust异步 , 从来没遇到过类似的问题 。
原文:
本文为 CSDN 翻译 , 转载请注明来源出处 。
为什么我们没有选择Rust?文章插图
为什么我们没有选择Rust?文章插图
为什么我们没有选择Rust?文章插图
点分享
为什么我们没有选择Rust?文章插图
为什么我们没有选择Rust?文章插图