一、rust的现状
rust当下很火,这不得不说确实如此。但是,所谓rust的火,是在其它主流语言不温不火的前提下表现出来的。什么意思呢?像Java、C、c++、Python、c#等这些语言(为什么没有提Javascript,大家自己琢磨)到目前为止,基本能用尽用了,向新的方向拓展,都有着这样那样的困难或者说问题。而rust的出现,是为了解决资源的管理问题,是对一些强类型语言特别是c++的一种直接的挑战。相对于c++,它的优势很明显,这也是为什么这几年,特别是今年rust高歌猛进的原因。
二、rust的技术特点和应用场景
rust为什么要出现?一般来说,新的技术的出现就是为了解决旧的技术无法解决或者解决不好的问题。rust也不能脱离这个窠臼,rust的优点主要包括以下几点:
1、零成本的抽象
也即以其它方法做为参数的抽象。这种抽象不会影响整个代码的性能。因此提高代码的可读性和质量。
2、编译器内存的安全
这个体现在内存分配和内存使用安全两个方面。rust可是没有GC的,这个非常重要。
3、强大的模式匹配
这个就简单了,可以用各种模式组合(字面量、变量、通配符等)配合match一起应用来控制程序流。
4、高效的C支持
对C语言支持友好简单,这个非常重要,要知道,这也是c++当初流行的一个重要原因。
5、c++/c语言转到rust的友好性
这个基本大家都知道,rust主要还是以这两种程序员开发者转过去的为主流。
6、效率高,性能好
这个是rust的一个非常重要的特点,这也是它能攻城略地的重要原因。
rust的应用场景和c++具有极大的相通之处,这也是rust能够快速增长的一个重要原因,想想三大战役,想想为什么人民军队越打越多,就明白了。不过c++是不是国军,这还真不敢说,鹿死谁手,未为可知。
三、未来的需求
其实,开发者普通有一个诉求,入门简单,学习曲线平滑,能够完成复杂的功能,运行效率高。这也是为什么类似Js这种语言流行的原因,它们虽然只占了前两个,就如此之火,假如有一门语言能占有全部,那结果是什么呢?不言面喻。
说实话,rust并没有全占有,但是它占有了后两者。在这个基础上,相对于c++和C它有入门简单,能够完成复杂功能。但是,一旦想转的c++相关开发人员转换完成,从新的开发人员中培养rust程序员,还是有很大困难的。它的复杂性,对一般程序员来说,是一个很陡峭的山峰。
换句话说,rust走过成长期后,如何能保持稳定的增长,其实就是一个很严峻的问题,可能现在它很火,但未来到底火不火,火到什么地步?这还是一个问号。而且c/c++的标准也在快速的迭代,相关的技术也在不断的推出,这对rust也是一个值得重视的问题。
能不能实现简单、方便、快捷、高效的编程,其实是rust不得不面临的问题,它可以不考虑这些,但这就意味着什么应该大家都知道。是做小而美还是做大而全,还是追求终极的大而美,不得不重视。
四、总结
新事物的产生,总是在旧事物的基础上吸收营养的。只是好的,符合生产规律的东西,都最终会成长起来。可能会成为霸主,也可能成为一方割据势力,历史是公正客观的,无论是人还是事物还是具现到一门编程语言,莫不如是。
之所以写这篇文章,是看到某网文说两年内,rust增长了180万开发者,大家都鼓吹rust,这里来浇浇凉水,拭目而待吧。