总结
学习前的初印象
其实在参加此次训练营之前,我已经浅浅接触了一下Rust;起初是因为旁人的安利,我开始简单了解Rust,发现其所有权机制似乎能解答很久以前我关于对象内存释放解决方案的一个不成熟的想法;随后又用Rust写了一个很简单的小工具,又发现它的奇妙之处在于:一旦通过了编译器的拷打之后,程序再拿去运行就几乎不会再报错了。在我看来,编码期早解决问题,要比运行期晚解决问题好多了!这就是训练营开始前,Rust给我的两点初印象。
学习后的印象和比较
在开始学习Rustlings后,我才发现对于Rust的了解我还是太少了——Rustlings的习题设计相当全面、有趣,在做题实践中学习要比只对着文档阅读生动得多;如果把写代码当做是添加一系列描述来使得程序不断具体化、直到能够实实在在运行起来、交付价值的过程,那么Rust就提供了相当丰富的机制,去极其精细地描述程序。尽管贴标签难免是一种以偏概全的行为,但我还是非常喜欢用一些词语给接触过的编程语言贴标签:C语言是经典悠远,Python是简练干净,Go是轻快简陋,Java是丰富啰嗦,C#是优雅如诗(这些全是我的刻板印象!但也是我真实的内心体验),那么Rust就是精细严谨。
Rustlings中一些地方的回顾
Rustlings中,有的语法点虽然之前已经略有耳闻,比如所有权机制,但运用起来还是时常碰壁,对这部分后续可能还是需要加深理解;有的语法点之前在其他语言里也有接触过,比如Optional;有的语法点给我耳目一新的感觉,比如错误处理机制,感觉写法上就相当漂亮。
展望
各大IT论坛上经久不息的争论之一大概就是“谁(PHP)是世界上最好的语言?”,曾经我也很着迷于这个问题;现在我更想搞清楚每种语言的最适合的场景;在学习了Rust之后,我想将来要在核心或是底层模块上多多锤炼自己的Rust水平,恰好这次的rCore实现就是一个非常好的训练机会~