写点什么

2017,Rust 将何去何从?

  • 2016-10-31
  • 本文字数:1124 字

    阅读完需:约 4 分钟

Rust 的核心团队敲定了Rust 语言将在接下来的一年何去何从的规划提案。一定程度上基于2016 年在Rust 用户中的调查结果,Rust2017 规划方案优先考虑在不牺牲速度和可靠性的前提下提升Rust 的生产力。

值得一提的是,Rust2016 调查暴露出了一些阻碍Rust 接受度提升的问题,例如,Rust 的学习曲线、程序库和集成开发环境的缺乏、语言成熟度的担忧以及编译性能。Rust2017 规划方案重点强调了这些问题,并提供了一份详细的改进方案。

学习曲线

在Rust2016 调查中,有近四分之一反馈者提到Rust 的学习曲线。这可能一定程度上跟Rust 基于所有权概念的非主流的内存管理模型有关。Rust 团队制定的改进策略包括:改进文档,改进语言诊断系统语言功能,改进工具。

工具

在工具方面,Rust 团队将会改进“编辑-编译-调试”循环,并提供一个集成开发环境。在提升“编辑-编译-调试”循环方面,Rust 团队已经完成了一些工作。他们提出了一种中间代码( MIR )来帮助编译 Rust 源代码,并且提供了一种更简单的类型检查和转换的表示方法。他们提供了增量编译功能,并且已经处于alpha 测试阶段。此外,Rust 目前的调试版本“运行得非常慢”,而Rust 的发行版本“构建得非常慢”。Rust 团队将试图在这两者间取舍一个更平衡的方案。

Rust 生态

Rust 生态成熟度是 Rust 团队提高 Rust 生产力的另外一个关注点。一方面,Rust 生态需要提供开发高质量工具箱的方法,包括信号质量预测、更好地支持持续集成、在特定工具上支持 API 审核等等。另外,Rust 生态系统应该成长并提供一套基本成熟的能够帮助完成基础任务的工具箱,特别是在服务器端的并发编程(Concurrent)、异步编程(Async)、并行编程(Parallel)方面。

互操作性

在生产环境使用Rust 经常需要它能够和已有的构建系统集成,并且能够和C++ 代码交互。综合这两方面的考量,Rust 团队计划让Rust 能够更简单地与现有系统集成。特别是,在Rust 中使用C++ 库应该不会比直接在C++ 中使用C++ 库复杂太多。

以上只是Rust2017 规划方案的概要,如果想知道更多Rust 技术规划的细节,包括在缺陷和替代方案方面的讨论以及尚未解决的问题等,可以参考 RFC 文档。

作者简介

Sergio De Simone是一位有 15 年以上编程经验的软件工程师。他曾任职于各种不同工作氛围的企业,例如西门子、惠普和一些初创企业,并参与许多不同的项目。近几年来,他专注于移动平台开发相关的技术。他目前供职于 BigML(一家在机器学习领域的初创企业),负责 iOS 和 OS X 开发。

查看英文原文: Where Rust is Heading in 2017


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-10-31 19:006384

评论

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

基于数组或链表实现Map

Silently9527

数据结构和算法

在深圳,看见大鲸跃起的浪潮

工业互联网

思呓(2)

型火🔥

学习 架构 分布式 解耦

《Redis 核心技术与实战》学习笔记 06

escray

redis 学习 28天写作 3月日更 Redis 核心技术与实战

Gradle无法访问Nexus私服仓库-offline

wjchenge

产品经理面试常见问题总结2

lenka

3月日更

How to Connect 2 Cisco Switches Together

心在飞

寻找被遗忘的勇气(二十一)

Changing Lin

3月日更

与前端训练营的日子 -- Week20

SamGo

学习

JVM - GC 问题分析常用两大指标

insight

3月日更

找到适合自己的睡眠方案

石云升

生活方式 28天写作 睡眠 3月日更

uni-app跨端开发H5、小程序、IOS、Android(五):uni-app数据绑定

黑马腾云

html5 微信小程序 uni-app iOS Developer 3月日更

字符编码,原来是SQL不走索引的元凶之一!

Java小咖秀

MySQL 程序员 开发 bug 细节

深入剖析 | Java16语法特性

九叔(高翔龙)

Java 架构

Swagger增强神器:Knife4j!用它轻松实现接口搜索、Word下载、接口过滤...

王磊

Java swagger Knife4j

线上问题的一点反思

风翱

复盘 3月日更 线上问题

javax.imageio.IIOException: Unsupported Image Type

wjchenge

ES6中的新特性:Iterables和iterators

程序那些事

nodejs ES6 程序那些事

第11周课后练习-安全稳定

潘涛

架构师训练营 4 期

翻译:《实用的Python编程》07_03_Returning_functions

codists

Python

主流分布式文件系统总结

跳蚤

开源与商业产品

ES_her0

3月日更

翻译:《实用的Python编程》07_02_Anonymous_function

codists

Python

Ubuntu 日常使用问题及解决

依旧廖凯

28天写作 3月日更

在你所在的公司(行业、领域),正在用大数据处理哪些业务?可以用大数据实现哪些价值?

跳蚤

登陆用户身份获取

程序员架构进阶

架构设计 认证授权 28天写作 3月日更

Wireshark数据包分析学习笔记Day18

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

树集合总结

我是程序员小贱

3月日更

宣传

Ashley.

mybatis 添加日志功能

xiezhr

mybatis 日志

MongoDB中的正则表达式

Kylin

mongodb 3月日更 21天挑战

2017,Rust将何去何从?_语言 & 开发_Sergio De Simone_InfoQ精选文章