V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
naoh1000
V2EX  ›  Rust

关于 Rust 的一些疑问

  •  
  •   naoh1000 · 2021-01-06 13:18:08 +08:00 · 3098 次点击
    这是一个创建于 1177 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想学习 Rust 做 Web 后端的前端有了一些疑问,Google 后没有找到解答,希望大佬帮忙:

    1. 在我 前一篇关于 Rust 的提问帖 中有人提到学习 Go 语言只需要 1 天,而 Rust 需要 364 天,请问这体现在哪些方面? Rust 的官方文档并不是很难懂呀。
    2. 有人说 Rust 不适合做 Web 开发,但 Google 后发现更多人说 Rust 的安全性和性能导致它很适合 Web 开发。Bitwarden 的知名第三方版本和 Dropbox 后端都是 Rust 写的。请问 Rust 不适合 Web 开发体现在哪里?
    3. Go 语言和 Rust 语言安全性差别主要体现在哪里?
    4. 有人说 Rust 很多必要的模块 1.0 版本都发不出来,请问哪些模块是这样的呢,好像没有找到。
    5. Rust 轮子很少吗?我找到了一些有意思同时其它语言没有的模块。
    6. 以后计划去国外发展,但不考虑 blockchain 。Rust 在国外也很冷清吗?看了下熟悉的大规模用 Rust 的公司只有 Dropbox 。
    10 条回复    2021-01-06 19:23:23 +08:00
    Jirajine
        1
    Jirajine  
       2021-01-06 13:24:05 +08:00 via Android
    rust 确实安全,但安全不代表适合。它的安全性让你注意每一点,但全都注意就等同于全都不注意,尤其是你在编写不那么在意质量的应用时。
    DarkCat123
        2
    DarkCat123  
       2021-01-06 13:34:54 +08:00
    以前有点叶公好龙,觉得 rust 很不错,思路也好,写起来也漂亮。
    看了这篇文章: https://coolshell.cn/articles/20845.html 以后,发现 rust 其实有的地方写起来也很丑。。
    Co1a
        3
    Co1a  
       2021-01-06 13:42:57 +08:00 via iPhone
    疫情闲着没事干学了一点点,感觉难不难懂和写完过不过得了编译器是两个概念,Go 在后端这块完全就是开发速度快,可以很快的构建出来,而不是出了一个问题,Google 半天找不到想要的答案,且 Rust 更新迭代速度快,很多问题根本找不到。
    sujin190
        4
    sujin190  
       2021-01-06 14:08:37 +08:00
    新手 Rust 这个内存管理真的不难么。。Go 这多简单,管啥内存管理,再说就 web 来说,安全不完全一点不重要好吧,性能高不高哪重要了,大站数来数去不就这么几个
    shibo501c
        5
    shibo501c  
       2021-01-06 14:30:21 +08:00
    1. Rust 如果要用到 future 的话, 难度会增加的比较快
    shibo501c
        6
    shibo501c  
       2021-01-06 14:34:44 +08:00
    2. Rust 做 Web 后端可能开发效率比较低, 代码多了以后编译很慢, dropbox 也是用来做性能要求比较高的部分
    3. 安全性主要是编译器能检查很多的内存问题和并发的问题
    4. 不太了解
    5. Rust 上有一些新东西, 但是如果是旧的东西比如 xml 处理之类的可能就会比较少, 整体生态还不够成熟
    6. 不太了解
    SuperMild
        7
    SuperMild  
       2021-01-06 14:35:46 +08:00
    Bitwarden 用的是 C#, 那个 rust 版不是官方出的。Dropbox 用 rust 写的是 sync engine, 这个与 web 后端关系不大。
    chinvo
        8
    chinvo  
       2021-01-06 14:46:01 +08:00 via iPhone
    实际使用两年多,也在一些生产项目中用过,总接下来就是 async ( future ) 和 ring 比较坑

    举例说明:

    future 会导致 Send,immutable var 还好,mutable var 问题很多

    ring 作为很多库依赖的 crypto 库,不支持从参数创建 ecc / ecdsa 密钥

    还有就是不要滥用 Clone / Copy
    SuperMild
        9
    SuperMild  
       2021-01-06 14:48:23 +08:00
    很多人说 rust 难学难用,主要是因为多数人心理上就抗拒接受新事物,事实上 rust 不难学(比 “正常” 语言稍难一点,也就多花几天时间学,没有 365 天那么夸张)。

    如果不注重性能,怎么简单怎么来,大量复制 immutable 对象,rust 写起来非常舒服。

    但既然用了 rust, 必然是追求极致性能的(杀鸡谁用牛刀啊),一旦追求性能,说“难”不太准确,应该说会很“累”,各种提高性能的特性都要用起来,这里面门道很多,很花时间。
    byzf
        10
    byzf  
       2021-01-06 19:23:23 +08:00
    1. 实际学起来没有什么区别。
    2. rust 没有应用特别广泛的大轮子。
    3. 云泥之别。golang 做任何事都离不开拆包装包。
    4. 不清楚。
    5. 该有的都有,用的人少而已。
    6. 不清楚。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3217 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 12:01 · PVG 20:01 · LAX 05:01 · JFK 08:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.