关于 Rust 的一些疑问

2021-01-06 13:18:08 +08:00
 naoh1000

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

举例说明:

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

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

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

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

但既然用了 rust, 必然是追求极致性能的(杀鸡谁用牛刀啊),一旦追求性能,说“难”不太准确,应该说会很“累”,各种提高性能的特性都要用起来,这里面门道很多,很花时间。
byzf
2021-01-06 19:23:23 +08:00
1. 实际学起来没有什么区别。
2. rust 没有应用特别广泛的大轮子。
3. 云泥之别。golang 做任何事都离不开拆包装包。
4. 不清楚。
5. 该有的都有,用的人少而已。
6. 不清楚。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/742161

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX