AI 中文社区(简称 AI 中文社),是国内学习交流AI人工智能技术的中文社区网站,这里可获取及贡献任何AI人工智能技术,我们追求自由、简洁、纯粹、分享的多元化人工智能社区。

Go VS Rust 在项目开发中的选择

Go · 杰作 151天前发布 · 浏览500次 · 点赞3次 · 收藏1次

读了Java vs. Go vs. Rust 语言性能、编译文件、 CPU、内存使用情况大比拼 之后,作为一个单方面的 Gopher,有一些自己的理解,一个没有真正使用 Rust 开发过项目的人,分析使用哪个适合开发项目,肯定有失偏颇的。从文章测试结果来看,无论是从编译文件、使用内存,使用 CPU 大小来判断,无疑 Rust 是大比分胜出的。Java 和 Go 差一个数量级(十倍为准),甚至 Java 和 Rust 的差距非常大,已经不是一个数量级可以说清楚了。就拿内存使用来说,Java 是内存消耗大户,既霸道又无理,一个普通项目内存占用上轻轻松松比 Rust 多出100倍的差距(甚者200倍都有)。

而 Go 和 Rust 对比,差距好像也不是很明显,说 Go 相差 Rust 一个数量级,又不准确,半个数量级好像也有点过分,总之,Go 和 Rust 使用内存和 CPU 上可能是 Java 的九牛一毛,但是请求数却优秀不少(高出20%-40%左右),有种老板看到,马儿不怎么吃草,但又跑得很快,困惑不已的感觉。

如果在项目开发中做出选择,可以参考 Go 和 Rust 以下优略势来判断:

* Go 上手平顺,门槛不是很高,一般有语言学习能力的人都能够上手的。
* Go 生成的二进制文件不大不小,属于优秀,编译很快,同时支持交叉编译(在一个系统平台上,可以编译多个系统平台的包,如 Windows 下编译 Linux 下的二进制文件包),包管理有自己的一套,开发工具友好规范,真正做到跨平台。
* Go 使用内存很低,但是比 Rust 高一点,基本不会超过一倍的范围,大概比 Rust 多出 30%-80%左右。
* Go 使用 CPU 很理性,能够发挥多核的优势,资源基本不会占满,可能准备占满时,进程已经处理完毕要释放了,做到恰到好处的程度。
* Go 的生态已经很完善,在 Github 基友网站上已经有非常多知名的各行各业的第三方库,而且完全跟着 Go 官方的规范走。
* Rust  上手稍微陡峭一些,如果你有学习 C/C++/Java 的能力,学习 Rust 不成问题,普通人稍微吃力一些,熟悉了也好搞的。
* Rust 生成的二进制文件非常小,完全可以忽略不计的级别。编译速度中等偏上,包管理也有自己的一套。开发工具也有一些,还有待完善。如果有学习 Rust 的能力,工具不在话下,同样也能做到真正跨平台的,不知道能不能交叉编译(Rust 开发者知道可以补充)。
* Rust 使用内存极低,而且很安全,都是以 kb 为单位的,平时一个项目多多少少要几十M的内存吧,而 Rust 开发的项目,估计1M都算很轻松平常了,内存安全、内存使用极低是它的杀手锏。
* Rust 使用 CPU 也非常低,基本不让服务器负荷运行,项目运行的稳定度应该非常 Nice,可能一个项目几年都不用重启,都是正常不过的事情。
* Rust 的生态也逐渐形成,一些大厂和知名企业,已经开始用它开发一些高性能场景的产品,但是开源参与度还有待提高,特色顶级项目还不算多。

总结: 这两门语言同样可以开发 web 项目、服务接口、网络服务,在网络服务开发上,Go 有天生的优势,在底层项目开发上,Rust 应该非常擅长,具有得天独厚的的优势。

Go VS Rust 在项目开发中的选择 - Go - 话题 - AI 中文社区
点赞(3) 收藏(1)
4条评论
杰作
#1楼 杰作 151天前
赞(0) 藏(0) 复(2)

@Rust 追随 你可以随时吐槽我了。

Rust 追随
#2楼 Rust 追随 150天前
赞(1) 藏(0) 复(0)
对 #1 @杰作 “

@Rust 追随 你可以随时吐槽我了。

” 评论的回复:

不敢不敢,存同求异。

Rust 追随
#3楼 Rust 追随 150天前
赞(0) 藏(0) 复(0)
对 #1 @杰作 “

@Rust 追随 你可以随时吐槽我了。

” 评论的回复:

你的话里话外,都是说 Go 是高性价比的语言。事实上 Rust 入门并不难!使用门槛上和 Go 差不多一致。

Rust 追随
#4楼 Rust 追随 150天前
赞(1) 藏(0) 复(0)

另外补一点,Rust 完全能交叉编译的,知乎上有教程:深入理解Rust如何进行交叉编译

评论

游客
登录后再评论
  • 一字一句需斟酌,一言一语显风范。
  • 评论消耗5积分,点赞、收藏消耗3积分。