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++还在继续进化,让它能在不同的领域都能面对竞争对手的挑战,不至于让昔日的巨人只剩下情怀和旧代码。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: Rust和C都是系统级编程语言,但它们有着不同的设计目标和特点。Rust是一种相对较新的编程语言,它在安全性、并发性和内存管理方面具有许多优点。Rust的内存安全性和线程安全性机制使得它在编写高性能和高可靠性应用方面非常有用。 虽然Rust已经广受欢迎,并且在一些领域,比如网络编程和Web开发中已经取代了C,但是Rust并不完全取代C。C语言在操作系统、编译器、驱动程序和底层嵌入式设备等领域仍然占据着重要的地位。同时,C语言已经成为了一种通用的系统级编程语言,具有广泛的应用和支持。 因此,Rust和C都将在不同的领域继续存在和发展,并且它们可能在某些情况下相互补充和共存。 ### 回答2: 目前来看,Rust不太可能完全取代C语言。虽然Rust语言在许多方面有着出色的性能和安全性,但C语言在计算机程序开发领域有着非常广泛的应用。C语言是一种成熟、稳定、高效的编程语言,广泛用于系统级编程、嵌入式开发、操作系统开发等领域,具有广泛的生态系统和大量的现有代码库。 相比之下,Rust语言是一种较新的编程语言,尽管它在安全性和内存管理方面表现出色,但在可用的库和工具方面相对较少。因此在一些特定场景下,C语言仍然是首选,特别是在对性能要求极高的系统和程序中。 然而,Rust语言在某些特定领域确实有着取代C语言的潜力。例如,在安全性要求较高的应用程序开发中,许多开发者已经开始选择Rust作为首选语言。可以预见,随着Rust生态系统的不断发展和完善,它将在更多领域挑战C语言的地位。 总结来说,虽然Rust语言具备许多优秀的特性和优势,但在目前阶段不太可能完全取代C语言。C语言在各个领域都有着巨大的用户基础和庞大的现有代码库,而Rust语言则需要进一步发展其生态系统和吸引更多的开发者,以实现对C语言的更大竞争。 ### 回答3: Rust是一种新兴的编程语言,它在安全性、并发性和性能等方面具有很多优势。与C语言相比,Rust更加关注内存安全和线程安全,通过引入所有权、借用和生命周期等特性,可以在编译阶段捕获到更多的潜在错误,提高程序的健壮性和可靠性。 虽然Rust在一些方面优于C语言,但要说它完全取代C语言还为时过早。C语言有着广泛的应用领域和庞大的代码库,许多底层系统和高性能应用仍然使用C语言编写。此外,C语言的生态系统已经非常成熟,有大量的工具、库和文档可供开发者使用。 然而,随着Rust的不断发展和成熟,它有可能逐渐取代C语言在一些领域的应用。比如,对于需要高效性能和强大并发特性的系统级编程、网络编程或嵌入式开发等领域,Rust可能成为更好的选择。它更加安全且能够提供更好的抽象能力和工具支持。 总的来说,Rust在未来有可能在一些领域逐渐取代C语言,但在其他领域,C语言的地位仍然很重要。选择采用哪种编程语言应该根据具体的需求、项目规模和开发者的经验来综合考虑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值