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

关于 Rust 的一些疑问

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

    想学习 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     Solana     5839 人在线   最高记录 6679       Select Language/a>
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms
    UTC 03:23 PVG 11:23 LAX 20:23 JFK 23:23
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86