Rust能取代C语言吗?

Rust是目前开发者圈子里最火的词之一,今天带大家来简单了解一下什么是Rust语言、Rust语言的特点、Rust语言在编程界中的地位以及大家常讨论的问题——Rust语言能取代C语言吗?

什么是Rust语言

Rust是一个通用的编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式语言。Rust适用于技术栈的任何地方,不论是操作系统内核,还是Web应用程序。Rust最初是由Mozilla研究院的Graydon Hoare设计创造,然后在Dave Herman, Brendan Eich以及很多其他人的贡献下逐步完善的。Rust的设计者们通过在研发Servo网站浏览器布局引擎过程中积累的经验优化了Rust语言和Rust编译器。Rust已经连续三年(2016,2017,2018)在Stack Overflow开发者调查的“最受喜爱编程语言”评选项目中摘取桂冠。

Rust的特点

1.运行快

Rust速度惊人且内存利用率极高。Rust没有运行时,没有垃圾收集器,有很快的运行速度可以在嵌入式设备上运行,还能轻松和其他语言集成。

2.可靠性

Rust有丰富的类型系统和所有权模型,保证了内存安全和线程安全,让您在编译期就能够消除各种各样的bug,戏称“fighting compiler”

3.生产力高

Rust拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具,比如强大的包管理器和构建工具、 智能地自动补全和类型检验的多编辑器支持以及自动格式化代码等等。

Rust在编程语言中的地位

1.就web项目而言,GO语言目前还是要比Rust有优势。

2.Rust目前被大家知道最多的项目是什么?Firefox。Firefox跨平台的稳定性和应用性,有目共睹,也是Rust最好的宣传。

也正因上述两点,实际上大家来学习Rust,目的并不是为了写web,而是为了写桌面(哪怕是命令行工具)、写系统应用,看中的是Rust的跨平台和性能优势,同样也是看中了能够绕过C和C++的学习成本。

这是为什么?

因为大部分人往往学习Rust的教程后不知道怎么衔接起来。怎么去用Rust写一个这样的程序。不了解该怎么看API文档,怎么用第三方文档,迷茫了,就会转而放弃Rust。

当看完C,转头来看Rust,用C的思维去查阅文档,便有了思路,知道和了解怎么用Rust开发如Firefox般优秀的跨平台桌面应用。

Rust能取代C语言吗?

Rust可以更好(安全)的完成C语言能做的工作。但是说取代,至少目前来说还是不太可能实现。

不是语言不优秀,也不是入门的语法难度有些高,或者说对底层硬件支持目前还不如C语言,以Rust目前的进步速度来看,这些在未来都可以解决。

对于芯片厂商,如NXP、TI、ST而言,它们目前的原厂固件和方案都是建立在基于C语言的平台上从头再建立起基于Rust的生态,对于这些厂商是既没有动力,也是引入风险,何况目前Rust本身的从业人员,至少在嵌入式领域里的从事者占比很少的,这些都是推广的难点。

至于Rust在嵌入式领域有没有价值呢?答案是肯定有的,在嵌入式开发方面,Rust完全有可能取代C语言。现在已经有很多嵌入式开发框架了,比如deone-os/drone。

对于某些主打高性能以及安全的嵌入式细分领域的场景,它们的更换语言的成本不会太高,可以给予C和Rust的双方案的支持,也许可以依托这种芯片实现一些业务,但距离取代C,不是技术的问题,而是商业运作的问题。

C用几十年时间证明了自己在底层应用的稳定性和可靠性,构建了基于它实现的大量方案,这些是C稳固的根基,除非有一天能够证明C不能满足底层的特性需求(也许是量子计算机),至少目前看来,在这些主流芯片公司提供基于Rust的原厂驱动和方案之前,谈取代都为时过早。

对于Rust语言能取代C语言吗?欢迎在下方留言评论~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200529A0AXIO00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券