Go程序员的Rust之旅(待续)

2023-02-14

rust

Rust和Go几乎是同时出现的,也基本上是同时开始热起来的,早期我也都尝过鲜,不过那时候都还没达到线上大规模应用的程度,所以也就只是简单的了解了一下。基本上就是大家的共识,go真简单,rust真难学。

个人觉得,rust最难的地方都跟内存安全管理相关,包括并发和异步的难点也是由这方面的问题引起的。跟C++的右值引用、移动语义这些特性一样,rust需要你对程序设计有更深层次的理解。

由于没有实际工作上的应用,很快rust就弃坑了。所以要想掌握一门语言,还是需要有推动力,要么是说服领导用新语言造轮子,要么干脆自己参与开源项目。

不过go倒是一直在用,因为简单,而且特别适合于互联网应用。经验上来说,一个熟练的程序员转go语言,基本上一周时间就能实际上手写线上代码了。go语言在中国特别火也不是没有理由的,在中国互联网行业,又要快又要性能,go绝对是不二选择。

这几年基本上就是在玩go了,语言简单,不过要用好也需要不断的打磨,基本上每个用go的公司甚至公司内的不同团队都会有自己的框架,这也说明go简单,造轮子的成本比较低。

最近由于工作需要,要用到rust了,琢磨了几天,发现rust确实香,越用越喜欢。比如rust在细节上还挺友好,语法糖一个接着一个,不像go语言,就是简单,死活不加新特性,就连泛型也是千呼万唤才给加上。rust的错误处理机制也是相当的舒服,go在这方面基本上完败。

当然,所有权、引用和借用、生命周期这些概念还是让人头疼,真不敢说一周能搞得八成熟,还是得靠写代码堆经验。

待续

 
阅读