CSDN首页刊发对我的专访:我为什么要选择Rust?

19 篇文章 2 订阅

今年(2015年)6月30日,CSDN网站首页刊发了美女编辑夏梦竹对我(Liigo)的专访文章,题目是《专访资深程序员庄晓立:我为什么要选择Rust?》。CSDN首页转发我的博客文章曾有许多次,但大多都是纯文字链接,这次在首页版面最突出位置悬挂题图和摘要,无疑是最隆重的一次。在这篇专访中,我简明扼要的介绍了Rust编程语言的核心特性和独特优势,并分享了我选择Rust这门语言的主要原因。如果您正试图寻找Rust语言中的亮点,期望读完此文后会有一定的收获。以下全文转载。

这里写图片描述

CSDN:你是从什么时候开始接触Rust语言的?是什么地方吸引了你?

庄晓立:我大概从2013年后半年开始深入接触Rust语言。它居然声称解决了传统C语言和C++语言几十年来饱受责难的内存安全问题,同时还保持了极高的运行效率、极深的底层控制、极广的应用范围。

其Ownership机制令人眼前一亮,无虚拟机(VM)、无垃圾收集器(GC)、无运行时(Runtime)、无空指针/野指针/内存越界/缓冲区溢出/段错误、无数据竞争(Data Race)……所有这些,都深深地吸引了我——这个十多年以来深受C语言折磨的痛并快乐着的程序员。

CSDN:在你看来,Rust是怎样的一门语言?它适合开发什么类型的项目?为何你会说Rust不惧怕任何竞争对手,它既能取代C语言地位;又可挑战C++市场,还可向Java、Python分一杯羹?与这些语言相比,Rust有哪些优越的特性?

庄晓立:Rust是一门系统编程语言,特别适合开发对CPU和内存占用十分敏感的系统软件,例如虚拟机(VM)、容器(Container)、数据库/游戏/网络服务器、浏览器引擎、模拟器等,而这些向来主要都是C/C++的传统领地。

此外,Rust在系统底层开发领域,如裸金属(bare metal)、操作系统(OS)、内核(kernel)、内核模块(mod)等,也有强劲的实力,足以挑战此领域的传统老大C语言。Rust丰富的语言特性、先进的设计理念、便捷的项目管理,令它在上层应用开发中也能大展拳脚,至少在运行性能上比带VM和GC的语言要更胜一筹。无GC实现内存安全机制、无数据竞争的并发机制、无运行时开销的抽象机制,是Rust独特的优越特性。

其他语言很难同时实现这些目标,例如传统C/C++无法保证内存安全,Java/Python等无法消除运行时开销。但Rust毕竟还是很年轻的项目,它释放影响力需要时间,被世人广泛接受需要时间;它的潜力能否爆发出来,需要时间去检验。我们只需耐心等待。

CSDN:Rust在国内有没有具体的实际使用案例?

庄晓立:因为Rust1.0正式版刚刚发布不足一月,在国内影响力还不大,我们不能苛求它在国内有实际应用案例。但是在国外,一两年前就已经有OpenDNS和Skylight把Rust应用在生产环境。还有浏览器引擎Servo、Rust编译器和标准库、项目管理器Cargo等“两个半大型应用案例”。这些足够说明Rust语言的成熟和实用。

CSDN:你参与了Rust1.0版本代码贡献,目前该版本正式版已经发布,对此你感觉如何?这门语言是否已经达到比较成熟的阶段?

庄晓立:我积极参与了Rust语言开源项目,多次贡献源代码,曾连续三次出现在Rust官方博客公布的Rust 1.0 alpha、Rust 1.0 beta和Rust 1.0正式版的贡献者名单中。在Rust 1.0正式版出台的过程中及此前的很长一段时间,开发者付出了极大的努力,确保Rust 1.0正式版在Semver 2.0规范下,务必保持向后兼容性,除非遇到重大Bug不得不修复。

我认为,在1.0正式发布之后,Rust就已经进入了比较成熟的阶段。而且,Rust还在快速迭代发展过程中,1.0发布6周后将发布1.1,再6周后将发布1.2,必然会一步一个台阶,越来越成熟稳定。

CSDN:除了功能优先级以外,在你看来,Rust正在朝什么方向发展?未来的Rust可以期待什么样的特性?

庄晓立:Rust一定会沿着“确保内存安全、无运行开销、高效实用”的既定方向持续发展。在短期内值得期待的语言特性有:动态Drop、偏特化、继承、改进borrow checker、改进宏和语法扩展。短期内值得期待的其他特性有:增强文件系统API、提供内存申请释放API、更好地支持Windows和ARM、更快的编译速度、更方便的二进制分发机制(MUSL)、更实用的工具等等。

CSDN:据我了解,你之前也比较推崇Go语言,为何想到放弃Go转向Rust?

庄晓立:推崇Go语言还谈不上,不过我曾经尝试努力接受Go语言,2011底年开始我曾经花费将近半年时间深度关注Go开发进程,提了很多具体的改进意见和建议,也曾经多次尝试贡献源代码。后来考虑到Go语言的设计理念跟我偏差太大,其社区也不太友好,慢慢地疏远了它。我曾经写过一篇博客《我为什么放弃Go语言》,谈到了很多具体的原因。

CSDN:国内,参与Rust代码贡献的开发者多吗?有核心的人员吗?有哪些社区在维护Rust?

庄晓立:国内参与Rust代码贡献的开发者并不多,但也不少,官方的贡献者名单中也偶见几个貌似国人的名字。Rust的核心开发人员基本上都是Mozilla公司的员工,他们专职负责开发维护Rust语言和相关的项目,Rust社区也主要是他们参与组织和管理的。社区人员讨论主要集中在GitHub项目主页RFC/PR/Issue官方、Discuss论坛/IRC、Reddit、HN、StackOverflow等。

CSDN:对于开发者而言,应如何学习Rust?请分享下你的经验。

庄晓立:由于Rust刚刚发布不久,各方面学习资料有限,我可以分享的经验也不多。首先推荐学习Rust官方提供的文档:

对于已经具有C++开发经验的开发者,可以看一下这个教程,是专门给C++程序员量身定制的Rust教材。这个虽然不是官方文档,但其作者是Rust开发组成员,文档质量是有保证的。除此之外,建议大家多关注一下Reddit网站的Rust专题,那里有全世界Rust程序员分享的许多有价值的资料(地址)。中文的资料更少,大家可以看看我参与筹建的Rust中文社区,与广大国内开发者共同交流进步:http://rust.cc。此外,也可以在CSDN极客头条Rust社区进行探讨、交流。


作者简介:庄晓立(网络ID是Liigo、CSDN博客),山东省梁山县人,80后,2002年毕业于山东理工大学。从事IT行业十余年,其中有接近十年时间专注于易语言(eyuyan.com)编程平台的研发,长期担任大连大有吴涛易语言软件开发有限公司研发部部长。后来曾短期参与嵌入式软件开发。目前在教育行业负责视频培训软件研发。

本文选自程序员电子版2015年6月B刊,该期更多文章请查看这里。2000年创刊至今所有文章目录请查看程序员封面秀。欢迎订阅程序员电子版(含iPad版、Android版、PDF版)。

(责编/夏梦竹)

本文为CSDN原创文章,未经允许不得转载,如需转载请联系market#csdn.net(#换成@)

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值