非职业码农,但工作内容需要写代码,对运行效率要求较高,半年前把部分 C++ 老代码
转到了 rust。
总体感觉 rust 语言是 C++ 码农想解决 C++ 痛点而设计的,但没有摆脱 C++ 的固有思
维。相对于 C++ 有很大改进,但是仍然没有避免概念多、复杂性高的问题,仍然是过多纠结于语法的语言。
具体感受如下
1、学习曲线太高,所有权的引入解决不少指针乱用的问题,但比较反直觉
2、写代码不能一气呵成,思维常常被编译错误中断
3、和 c++ 类似,语言核心功能需要通过库来解决,比如解决堆对象所有权控制引入
box<> cell<> refcell<> 之类,实际用起来常常会模板套模板,掌握起来不容易,读写起
来困难。
4、和 c++ 类似,解决一个痛点,有时会引入两三个难以理解的东西
比如:
标准库,真正业务方法不多,倒是有很多 iter() into_iter() as_ref() as_mut() as_ptr()
as_mut_ptr() 这类方法,意思模糊,需要额外学习成本才能辨明其中区别。
类似C++中 const * p const 的 let mut : &mut 之类。
5、safe 代码做一些复杂操作或者底层操作比较麻烦,常需要妥协写 unsafe 的代码,相
当于要掌握第二门语言
6、奇怪的宏
7、板上一致看好。我的印象里板上一致看好的语言最终都会慢慢消失在视野。比如 D 语
言。几年前,Go 和 Rust 板上板上也讨论过,记得当时大致贬 go 捧 rust 。我分析,板
上可能对 c++ 有特殊感情的老码农占多数,对于类 C++ 的语言和 考验智商分布的语言
有特别偏好。
--
修改:zezo FROM 112.64.62.*
FROM 112.64.62.*