前端未来的主流技术方向有哪些?腾讯、京东、同城旅行等大厂都是怎么布局的?戳此了解 了解详情
写点什么

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

2019 年 4 月 18 日

明明很好很强大,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:2821775

评论

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

已经整整10年了,经济学人分析日本福岛核泄漏事故带来的沉重影响

wbliu85

LeetCode题解:125. 验证回文串,双指针,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

HashData携手中国移动 共筑通信技术数字化之路

HashData

数据库 解决方案

【笔记】第七周 第1课

Geek_娴子

Python 基础语法

依旧廖凯

28天挑战 3月日更

Hello World!!!

小太阳

算法攻关-从上到下打印二叉树(O(n))_offer32

小诚信驿站

架构师 刘晓成 小诚信驿站 28天写作 算法攻关

甚至你可以在网抑云上听歌

ES_her0

28天写作 3月日更

【20万大奖】参加APICloud3.0案例与AVM组件大赛,赢现金大奖

APICloud

开发者 前端开发 前端框架 APP开发 APICloud

一名优秀的女程序员是如何炼成的?我们跟爱奇艺的五位工程师姐姐聊了聊

爱奇艺技术产品团队

引爆40亿播放的抖音春节道具,背后是怎样的技术?

字节跳动技术团队

Wireshark数据包分析学习笔记Day7

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

项目截图

赝品

还不懂云数据库Redis是什么?快上车,一张图带你了解!

浪潮云

云数据库

为什么选择python

张鹤羽粑粑

28天写作 3月日更

NewSQL分布式数据库,例如TIDB用K/V的底层逻辑

读字节

大数据 分布式 分布式存储 RocksDB TiDB

ARTS - Week 6

Khirye

Java LeetCode arts

FutureTask源码解析

徐海兴

多线程 Future future设计模式

华为不养猪,小米没造车,“巨头错觉”是怎么来的?

脑极体

如何快速的插入 100W数据到数据库,使用PreparedStatement 最快实现!

屈仁能

MySQL

深读golang中map后思考和借鉴

ninetyhe

go 源码

2021最新快手面经主动分享:Java面试神技/技术知识集合(10个专题详细介绍)

比伯

Java 编程 架构 面试 程序人生

Python 变量类型

依旧廖凯

28天挑战 3月日更

前端开发:Vue项目中解决Emitted value instead of an instance of Error问题

三掌柜

vue.js 前端 3月日更

翻译:《实用的Python编程》04_04_Defining_exceptions

codists

Python

终于有人把 "高可用" 说清楚了

架构精进之路

3月日更

如何带团队?

石云升

程序员成长 28天写作 职场经验 管理经验 3月日更

关于写东西的一点思考

道伟

28天写作

价值感知:如何评价企业IT项目的价值?

boshi

价值传递 七日更 项目经验

数字货币持币生息钱包系统开发搭建

薇電13242772558

区块链 数字货币

JAVA中的I/O模型-多路复用

云流

Java 架构 计算机

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

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