Rust 取代 C++ ?

https://www.zhihu.com/question/27608498


作者:天象
链接:https://www.zhihu.com/question/27608498/answer/50130876
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

其实,Rust是没法取代C++的,没有任何一个语言能取代C++。C++太大了,以很多毫不相干的方式应用在很多毫不相干的领域里面。Rust只会取代C++的应用场景里的一部分,就像很多语言做过的一样,但时代已经不同了,不可能再发明一个C++这样高大全的语言了。因此,也没有办法比较Rust和C++的优劣。
C++大概有这么几个主要的应用场景:
高性能服务器:高性能,高抽象
GUI:中等性能,极高抽象
编译器:高性能,极高抽象
密集计算:极高性能,中等抽象
操作系统:高性能,中等抽象
大型游戏:高性能,高抽象
有没有极高性能,极高抽象的项目呢?其实就是STL,也就是C++本身。 那么,Rust,从现在的样子看,它的特性是高性能、高抽象,这一块确实是至今大家仍然被迫用着C++,没有别的语言可转的。那么,如果一切顺利的话,服务器和大型游戏将会有不少新项目转向Rust。对于Rust来说,世界年轻,大有可为。
然后就是Rust缺的,首先是极高性能的部分,对于C/C++来说就是指针运算。Rust本身语法比较封装,跟C++和Fortran比还是不够底层,再加上C++编译器几十年来的优化,只能说Rust不是干这个的。然后是极高抽象的部分,Rust明显是不能跟C++ class+模板的豪华阵容相比。当然,很多时候程序的抽象在高度分层的抽象层中体现,跟语言本身关系不大。但是像GUI库和编译器这种数量上很多的抽象问题,缺乏原生抽象特性就会显得无力。应该说,很高兴C++还在继续进化,让它能在不同的领域都能面对竞争对手的挑战,不至于让昔日的巨人只剩下情怀和旧代码。

posted @ 2017-12-16 09:12  张同光  阅读(889)  评论(0编辑  收藏  举报