从另一个面看待 Rust 和 Go.
这一阵子把 Rust 撸了一把,顺带做个总结。刚好 Go 也整过,就从 Rust 和 Go 两者来叨叨。
+++++
Rust 和 Go 算是近十年来打造最成功的两个编程语言了,Go 早一些热起来,Rust 慢热一些。十年前,我大概以为 Scala 会成为新编程语言的王者。然后有了 Swift,苹果的东西就是容易狂热,当时明显感到 Swift 是豪门贵种,热得炙手。再后来,Clojure 进入我的视野,热了一阵。再再后来 Kotlin 出现了。
当 Kotlin 出现时,我就暗自觉得 Scala 不可能再扩大了,最大原因根本不是现在说的语法复杂、版本 3 的改动太大,而是 JVM 上的第三方编程语言太过分裂了,Lisp 系一头扎进来,(J)Ruby、(J)Python 也扎进来,Kotlin 其实就是缩小版的 Scala。不然,凭着十年前大数据风潮的优势,Scala 没理由止步不前。也许 Java 语言早就看懂了这一点,JVM 是个宝藏平台,但有 Java 语言在,其他语言就只能是配角。
Swift 最终只是证明了苹果只对自己家的东西感兴趣,当年那些聒噪 Swift 将成为通用编程语言王者的人也被证实只是一厢情愿,Swift 终究只是守着苹果自家的一亩三分地。
+++++
Go 刚开始连 Windows 的发行版都没有,国内也只有老许一个人在捧。当时老许说 Go 十年后会超越 Java。虽说这是一个营销话术,但事实上时至今日 Go 在开发者心目中的位置还是有了。
Go 的流行因素很多人说是简单,看看 goroutines 就知道了,一般的人也能一般性地使用;以及网络库,甚至不要啥框架就能快速搭建一个 Web API Server 起来。这是没错的。但我觉得最主要的原因是 Go 在开发速度和性能方面达成了最佳平衡。开发速度很快的脚本语言性能没它好,性能比它好的编程语言没它开发效率高。
Rust 想挑战 C/C++,毕竟几十年了都没人干成这件事。事实上它已经取得很大部分认可了,比如为 Linux 内核所接受。Rust 成功的因素我其实一直没太搞透彻,其 2018 以前的版本其实是很难用的。难道就因为要成为 C/C++ 之外的另一选择就可以成功吗?但事实上它的确成功了。我个人把它的成功归结为独特生命周期管理方式的编译器,带来很高的安全性,吸引了一大批高端开发者,而且这些人厌倦了 OOP 一统天下的形势(以及指针的滥用)。而后来 Rust 社区的积极进取终于换来开花结果,相继得到各大厂及 Linus/Linux 的背书。
但我始终隐约觉得,如果有一个更简单、性能同样好、安全性足够有保障的编程语言出现,是不是就会影响到 Rust 了?比如 Zig?这得看它们的进一步发展了,也要看 Rust 如何与时俱进了。
+++++
总之,如果要应用于绝大多数人的业务数据相关的开发,还是选择 Go 吧。Rust 也能做这些事,但开发效率肯定比不上 Go。搞些平台基础设施开发的话,Rust 的性能及安全优势就是重要考虑元素,但这个流行程度肯定比不上数据业务。从个人兴趣造轮子来看,Rust 的乐趣无疑甩 Go 几条大街。
via 2gua
文章评论