Rust是一门相对小众的语言,2015年才正式诞生。
为什么我要选择这样一门语言来学习呢?原因主要为以下几种:
- Rust的语法简洁优雅,和我熟悉的js/ts比较相似。
大量使用了缩写,比如函数声明的关键字是fn。
这一点也很对我的口味。像Java中那种动辄几十个字母的长长变量名,或者类声明中非常罗嗦的各种修饰符,看着就很累赘。 - Rust支持丰富的编程特性,并且还有自己独有的语言特性。
本身我是对面向对象不太感兴趣的。可能是受到了Java的影响,我总觉得面向对象的语法非常罗嗦。我更习惯rust这样的函数式的简洁优雅。
当然,rust也是支持适量的面向对象的特性的。比如trait,泛型等。
另外rust还有宏,可以用于几乎无限度的拓展语言。这一点类似于传说中最好的语言lisp。
还有自己独有的借用,生命周期等概念,学习这些语言概念,能让自己对编程的理解更深入。 - Rust可以用于Web Assembly。对于前端工程师来说,这可能是最有眼前实际利益的一点了。
Rust可以写Web代码,并且通过Web Assembly嵌入到js代码中运行。
这可以让人在前端运行性能要求较高的逻辑。毕竟js作为一门脚本语言,实际上本身能力还是非常不足的,各种编程特性的支持也不强。
目前也有一些类似于React这样的rust库,可以让你完全使用rust来编写前端页面。 - 有完善的官方工具链以及相对丰富的周边三方库。
rust的官方工具链是一整套配齐的,比如rustup可以用于rust的升级,cargo可以用于编译,打包,查找三方库,单元测试等一系列工程化的操作。不像其他语言还要有非官方的支持。比如js就有npm,yarn的选择。单元测试又有jest。mocha这样的选择。开发工具的不统一给人徒增烦恼。
另外rust的生态虽然不算非常丰富,毕竟还是一门相对年轻的语言。但是rust也有不少各个领域的库。除了前面讲到的写前端页面的库,也有一些Web编程的库,可以用一些Web项目。学会了的朋友也可以用rust写一些自己的项目,比如一个博客或者一个工具网站。
以上几点就是我选择rust进行学习的理由。
诚然rust肯定也是有缺点的。
第一个缺点是他的学习曲线过于陡峭。几乎任何一门语言的掌握者都不能直接快速地从其他语言转到rust中来。因为rust是一门集百家之长的语言,相当于把多种语言的好的编程特性集合到了一起,除此之外还有自己特有的编程特性。因此学习rust需要学习不少新的概念。但是既然是为了学习提升自己,那么选择难的语言反而更有好处。
第二就是rust的圈子并没有那么大,也不像其他老牌语言那么成熟。毕竟rust还很年轻,这是正常的。不过我学rust只是作为兴趣,而不是想把它作为硬技能去面试。rust的不成熟,只是导致它不能用于快速用于生产,却不妨碍我学习一些编程概念。
因此,综上所述,这就是我为什么选择Rust的理由。
网友评论