写点什么

明明很好很强大,Rust 却还是那么小众

  • 2019 年 4 月 18 日
  • 本文字数:1790 字

    阅读完需:约 6 分钟

明明很好很强大,Rust 却还是那么小众

Rust 是一门通用、编译型、静态类型编程语言。说起 Rust 语言的优点,不少人会想到三个词,安全、并发、高效。但相关调查结果表明,Rust 在开发者中的热度并没有想象中的高。学习曲线陡峭或许是一部分原因。 QCon北京2019 邀请了字节跳动跨平台团队负责人王枞,与大家分享 Rust 跨平台客户端开发在字节跳动的实践经验,点此了解详情


近日,Stack Overflow 发布了 2019 开发者年度调查报告,报告显示,Rust 连续四年成为最受开发者喜爱的编程语言。据了解,此次约有近 90,000 名来自世界各地的开发者参与调查。Stack Overflow 作为全世界最流行、最顶级的 IT 技术问答社区,其数据具有一定的参考价值。



Rust 是一门通用、编译型、静态类型编程语言,由 Mozilla 主导开发。它支持函数式、并发式、过程式以及面向对象的编程风格。第一个有版本号的 Rust 编译器于 2012 年 1 月发布。


说起 Rust 语言的优点,不少人会想到三个词,安全、并发、高效。


安全:Rust 是静态的,拥有丰富类型系统和所有权模型,保证了内存安全性和线程安全性。 C 语言很容易出现整数溢出,如果被黑客利用,很容易出现安全问题。而 Rust 中的每个值都只能被一个所有者拥有,所以 C 语言遇到的这类问题,对 Rust 来说都不是问题。


并发:并发和并行是 IT 圈内不会过时的话题,Rust 可让程序在编译时并发执行,并且将安全与并发完美统一。


高效:没有 Runtime,也没有 GC,所以 Rust 非常快且节省内存,它可以为性能关键型服务提供动力,在嵌入式设备上运行,并且可以轻松地与其他语言集成。


Bryan Cantrill 是 Joyent 的首席技术官,以在 Sun Microsystems 开发 DTrace 而闻名。他曾为 Rust 写过一篇推荐文章,用自己的实际体验验证了 Rust 的诸多优点,如错误处理、宏、Serde、集成测试和社区。在文章的末尾,他还提到自己用 Rust 重写了一个 C 程序,运行结果令人惊奇,这个原生的未经过任何调优的程序比他精心写成的 C 快了约 32%。相关数据如下:





Rust 看起来很好很强大,业界是否已经将其大量投入使用了呢?并非如此。2018 年,JetBrains 发起了其标准的年度调查项目,调查了 6,000 名开发人员,以确定开发人员生态系统的状态。结果显示,Rust 在开发者中的热度并没有想象中的高。



2018 年年尾,Rust 官方博客发布了 2018 年的 Rust 调查报告。报告的数据也证明了这一点:很多非 Rust 用户表示他们所在的公司本身不使用 Rust,超过三分之一的用户表示,目前还没有考虑在未来一年尝试使用 Rust。


Rust 的学习曲线比较陡峭,上手难是导致初学者倒在入门阶段的一大原因,对使用其他语言的企业来说,转移成本也是需要考虑的一点,所以这直接影响了 Rust 的使用者数量。再者,Rust 的生产环境偏少,企业招人难,开发者求职也不容易。


作为一门小众语言,Rust 虽然没有大热,但一直保持着缓慢而稳健的增长。2017 年,Rust 语言在 GitHub 上 Star 大于 10 的项目数为 2,139,2019 年 4 月,这个数字增长到了 6,131。



Rust 对标的是 C/C++,而 C++ 的学习曲线比起 Rust 更为陡峭,所以对那些希望编写 C/C++ 却又觉得它们难以接近的程序员来说,Rust 是一个不错的选择。它十分适合写安全且高效的代码,可应用于嵌入式设备和可扩展 Web 服务的开发。目前,除 Mozilla 之外,全球有数百家公司正在使用 Rust,比如 Amazon、Atlassian、Dropbox、Facebook、Google、Microsoft、Red Hat 和 Reddit 等等。在国内,百度安全实验室的 MesaTEE 下一代可信安全计算服务框架、 PingCAP 的 TiKV 等项目用到了 Rust 语言,蚂蚁金服、知乎和 SenseTime 内部也不乏用 Rust 语言开发的项目,而字节跳动则将 Rust 用到了今日头条企业级 IM 产品 Lark 的开发之中,它也是国内对 Rust 开发者最为友好的公司之一。


如果你也对 Rust 感兴趣, QCon北京2019 邀请到了字节跳动跨平台团队负责人王枞,为大家带来《Rust 跨平台客户端开发在字节跳动的实践》的分享,可以关注一下。


近些年,字节跳动成长十分迅猛,与自身的技术创新离不开关系。想知道更多来自字节跳动的技术细节?本届大会中,以下技术实践值得关注:


ByteMQ: A distributed message queue towards scalability

基于数据建模的高性能弹幕设计解决方案

ClickHouse 在头条的技术演进


更多技术难题的创新解法请点击 QCon北京2019 了解。大会报名现已进入倒计时,团购可享折扣优惠!席位有限,马上拿起电话联系票务小姐姐 Ring 吧:电话/微信:17310043226


2019 年 4 月 18 日 16:2823725
用户头像

发布了 26 篇内容, 共 13.4 次阅读, 收获喜欢 75 次。

关注

评论

发布
暂无评论
发现更多内容

详细架构设计文档

努力的静静

#架构实战营

盘点 2021|自己一个人扛起了公司的半边天

liuzhen007

技术人生 盘点2021 盘点 2021

元宇宙很好,但VR开发者不准备停留在这里

白洞计划

【架构实战营】模块三:命题作业

wgl

「架构实战营」

外包学生管理系统详细设计文档

糖糖学编程

架构实战营

瞰见 | 开源,会不会变成开源创业的焦油坑?

OpenTEKr

狄安瞰源

「架构实战营」模块三《如何保证设计出合理的架构》作业

DaiChen

作业 模块三 「架构实战营」

百度飞桨EasyDL桌面版正式上线,没网也能训练AI!

百度大脑

人工智能

阿里巴巴超大规模 Kubernetes 基础设施运维体系揭秘

阿里巴巴云原生

阿里云 Serverless Kubernetes 云原生 ASI

第三周学习总结

糖糖学编程

架构实战营

Git基础 |打tag

xcbeyond

git 28天写作 tag 12月日更

引领人工智能技术自立自强 百度吴甜获评“首都最美巾帼奋斗者”

百度大脑

人工智能「

《PyTorch 深度学习实战》项目复习3

IT蜗壳-Tango

28天写作 12月日更

架构实战营4期-模块3作业

木几丶

「架构实战营」

从人工到智能!百度AI开发者大会分论坛,探寻国球乒乓背后的AI之路

百度大脑

人工智能

一口气搞懂【Linux内存管理】,就靠这60张图、59个问题了

奔着腾讯去

内存泄露 内存管理 Linux Kenel 内存映射 内存池

深入理解一下Python中的面向对象编程

宇宙之一粟

Python 面向对象 12月日更

Golang中文件的基本操作

liuzhen007

Go 28天写作 Go 语言 12月日更

瞰见 | 初创1个月就融到3亿美金,ClickHouse 你凭什么?

OpenTEKr

狄安瞰源

VS Code 如何设置大小写转换快捷键

AlwaysBeta

vscode

学习总结 2021.12.30

mj4ever

学习笔记

【架构实战营】模块三:知识点总结

wgl

「架构实战营」

Java 数据持久化系列之池化技术

程序员历小冰

MySQL 持久化 28天写作 池化技术 12月日更

第三模块学习总结

努力的静静

#架构实战营

Apache 海豚调度 PMC 郭炜:开源,不是天才的甜点,而是执着者的盛宴 I OpenTEKr 大话开源 Vol.7

OpenTEKr

大话开源

架构实战营:模块三作业

Geek_93ffb0

「架构实战营」

百度智能云发布零碳园区解决方案,助力实现双碳目标

百度大脑

人工智能

一个cpp协程库的前世今生(一)缘起

SkyFire

协程 cpp cocpp

费用节省 50%,函数计算 FC 助力分众传媒降本增效

阿里巴巴云原生

阿里云 云原生 合作 函数计算FC 分众传媒

架构实战营模块三作业

lchx08

「架构实战营」

ALC北京发起人 姜宁:通过开放与协作,我们可以实现一个人想都不敢想的事情 I OpenTEKr 大话开源 Vol.6

OpenTEKr

大话开源

明明很好很强大,Rust 却还是那么小众_编程语言_邓艳琴_InfoQ精选文章