AICon 北京站 Keynote 亮点揭秘,想了解 Agent 智能体来就对了! 了解详情
写点什么

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

  • 2019-04-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-04-18 16:2828215
用户头像

发布了 70 篇内容, 共 77.7 次阅读, 收获喜欢 162 次。

关注

评论

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

“这对我个人能力的认可意义重大”!数据库“小白”到 Apache IoTDB committer 的心路历程!

Apache IoTDB

什么是业务敏捷,如何实现业务敏捷?

CODING DevOps

敏捷开发

报表分析工具免费试用:瓴羊Quick BI带你快速解析数据

夜雨微澜

专家老师带教!现场答疑!阿里云实时计算 Flink 版线下训练营北京站来啦!

Apache Flink

大数据 flink 实时计算

如何唤醒潜在用户?选择智能化推送系统的重要性

MobTech袤博科技

前端 前端开发 APP开发 前端开发工具

【学习课程送福利!】InfoQ最新Java开发课程喊你来领奖品!100%中奖!

飞算JavaAI开发助手

对线面试官 - TCP 经典面试题

派大星

Java 面试题

云原生 AI 工程化实践之 FasterTransformer 加速 LLM 推理

阿里巴巴云原生

阿里云 AI 容器 云原生

一个好用的低代码平台应具有哪些素养?

树上有只程序猿

低代码 零代码 应用开发

QT使用QML实现地图绘制虚线

芯动大师

低代码平台技术分享官丨工作流应用场景之动态驳回

inBuilder低代码平台

如何落地复杂系统的架构治理?

码猿外

架构设计 软件架构治理

提速 40%,融云基于 QUIC 深度优化通信协议

融云 RongCloud

网络 协议 融云 QUIC 通讯

【数据库原理 | MySQL】一文打通 DDL语句 - ARTS 打卡第 一 周

计算机魔术师

Apache 官方限定社区周边,Community Over Code 亚洲大会参会礼包抢鲜看!

Apache IoTDB

LeetCode题解:617. 合并二叉树,JavaScript,详细注释

Lee Chen

JavaScript LeetCode

【名师代练】带你玩转 RocketMQ,角逐「RocketMQ 首席评测官」

阿里巴巴云原生

阿里云 云原生 Apahce RocketMQ

什么是主数据管理?企业主数据管理方法论

优秀

主数据管理 主数据

商业智能工具 bi工具是什么,瓴羊Quick BI能给企业主带来哪些优势?

对不起该用户已成仙‖

ASR 语音识别接口封装和分析

非晓为骁

AI 语音识别 ASR AIGC

融云出海:两极分化的网红大户「拉美」如何出海制胜

融云 RongCloud

互联网 泛娱乐 出海 社交娱乐 社媒

免费物联网平台好用吗?物联网平台卷蒙圈了,集体不要钱,白嫖的到底能不能用?

Geek_a6511e

物联网平台 物联网 物联网低代码平台 物联网平台选型

TDengine 3.1.0.0 版本成功发布,涉及五大板块功能更新!

TDengine

tdengine 时序数据库

Apache Dubbo 云原生可观测性的探索与实践

阿里巴巴云原生

Apache 阿里云 云原生 dubbo

火热的低代码和无代码赛道

互联网工科生

软件开发 低代码 无代码 应用开发

智能标签系统如何助力智能推送服务

MobTech袤博科技

前端开发 消息推送 APP开发 前端开发工具

融云:以对话为场景本质,AIGC 将如何改变游戏规则

融云 RongCloud

人工智能 AI 算法 AIGC 通讯

文心一言 VS 讯飞星火 VS chatgpt (76)-- 算法导论7.3 1题

福大大架构师每日一题

福大大架构师每日一题

【Python】一键查询依赖生成文件 requirements.txt

ReturnTmp

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