强大的Rust还是简单的Go?我选择了Go

Posted LUPA开源社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了强大的Rust还是简单的Go?我选择了Go相关的知识,希望对你有一定的参考价值。

一名后端开发者讲述了自己如何在Rust和Go之间做出选择。

“Rust还是Go,我该选择哪一个?”是我经常遇到的一个问题。不过我的答案也很简单——选择Go。



之所以这样选择,不是因为Go是更好的语言,而是因为对于一个(看似)简单的问题,人们更想要一个简单的答案。

两门语言似乎都在竞争同一用户群,而且它们似乎都是“系统编程语言”,所以它们之间一定会分出输赢,是这样吗?

下面介绍一些实际情况。Rust具有以下的一些特性:

能安全应对空指针、竞态条件和各种低级威胁

可预测的运行时行为(零代价抽象zerocostabstractions,无垃圾回收)

(几乎)拥有对硬件的整体控制(内存布局,处理器功能)

与其他语言的无缝互操作性

如果您不需要任何这些功能,Rust可能不是很好的选择。这是因为这些功能带来了成本:ramp-uptime。

使用Go,你可以快速完成任务。Go是我使用过的最有生产力的语言之一。它的准则是:解决今天真正的问题。

我不认为Go是一门优雅的语言。它最大的特点是简单,Go甚至不是系统编程语言,尽管使用它在后端基础架构上编写微服务和工具非常棒,但我不希望使用它编写内核或内存分配器。

相对来说,Rust比较难。我花了好几个月的时间,才让它能有点提升我的生产力。Rust是一门强大的语言,而且它每天都在变得更强大。对我而言,Rust更像是一个“实用的Haskell(pragmaticHaskell)”,而不是“更安全的C(saferC)”.

99%的时间,Go的表现是足够好的,剩下的1%,你知道的。然后再看看Rust,你会发现这两门语言互相补充得很好。

以上是关于强大的Rust还是简单的Go?我选择了Go的主要内容,如果未能解决你的问题,请参考以下文章

选择“网红语言”值不值?使用Go和Rust的数据库公司七年经验总结

选择“网红语言”值不值?使用Go和Rust的数据库公司七年经验总结

rust和go该如何选择

rust和go该如何选择

rust和go该如何选择

Go语言的成功也预示着Rust的成功