速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

明明很好很强大,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:2827700
用户头像

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

关注

评论

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

Java安装教程

Sakura

28天写作 3月日更

springboot 2.4.0 knife4j 3.0.1接口文档框架

黄敏

springboot SpringBoot 2 Knife4j

Centos7 systemctl 启动Java应用

黄敏

Java Linux Centos 7 部署

laravel的生命周期

一个大红包

28天写作 3月日更

IDEA 敏捷开发技巧——实时模版

程序员小航

IDEA IntelliJ IDEA

浅谈微服务架构

跳蚤

HBase分布式部署

Fong

大数据 运维 部署

JVM笔记 -- JVM的发展以及基于栈的指令集架构

秦怀杂货店

JVM JVM笔记

学大数据应该怎么入门--大数据学习之路

大数据技术指南

大数据 3月日更

设计模式的5个常见问题及解决办法

乐天

设计模式

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

codists

Python

微服务实践之分布式定时任务

万俊峰Kevin

微服务 定时任务 延迟任务 Go 语言

需要深入的技术领域,方向正确是成功的关键

杨明越

正则表达式.02 - 量词与贪婪

insight

正则表达式 3月日更

程序员之禅(五)十条准则

每天读本书

读书笔记 每天读本书

《精通比特币》学习笔记(第三章)

棉花糖

区块链 学习 3月日更

Linux时间同步-NTP服务器

黄敏

Linux ntp

浅淡python中with的用法,上下文管理器

极客新人

Vue3源码 | 深入理解响应式系统上篇-reactive

梁龙先森

大前端 Vue3 源码解析

ARTS - week 1

steve_lee

工具软件与开源

行人23

开源 SaaS

Dubbo 进行一次微服务调用的时序图

跳蚤

中台建设落地浅谈

Man

中台 数字化转型

产品经理是个很务虚的岗位吗?

涛哥 数字产品和业务架构

产品经理

开课啦基于 dubbo-go 的服务端技术升级实战

apache/dubbo-go

微服务 云原生 dubbo dubbo-go dubbogo

《撬动星球的头部效应-绝非偶然》读书笔记

SilentMacUser

极客时间 读书笔记 产品经理 知识星球 极客大学产品经理训练营

能源区块链研究|中国内蒙古自治区为减少能源消耗 禁止比特币采矿

CECBC

比特币

使用Android版VMware Horizon Client连接到云桌面

梅花鹿鹿

SpringBoot启用HTTPS

黄敏

jdk https openssh springboot

Hbase详解

Fong

大数据 运维 概念

如何让别人访问到你的本地项目? Ngrok免费实现内网穿透

xiezhr

ngrok 内网穿透 3月日更

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