写点什么

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:006211

评论

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

JVM GC机制

wzh

面试 JVM 垃圾回收 GC GC Root

JVM内存划分

wzh

面试 JVM 方法区

网络攻防学习笔记 Day113

穿过生命散发芬芳

网络攻防 8月日更

Vue进阶(五十六):vue-cli 脚手架 karma.conf.js 配置文件详解

No Silver Bullet

Vue 8月日更

Spring XML 原理

gin

xml spring 自定义标签

Go- 字符串处理

HelloBug

Go 语言 字符串处理

Go- 时间与日期

HelloBug

时间 Go 语言 日期

Vue进阶(五十四):vue-cli 脚手架 dev-server.js 配置文件详解

No Silver Bullet

Vue 8月日更

Java web程序的运行时环境

wzh

Java tomcat 面试 Web JVM

MySQL 系列教程之(十一)Explain 与慢查询优化

若尘

MySQL 数据库 8月日更

为了完成小姐姐安排的打分系统,又熬了一个小时的夜补充视图与模板

梦想橡皮擦

8月日更

Java技术开发专题系列之【Guava Collections】实战使用相关Guava不一般的集合框架

洛神灬殇

Java Guava 8月日更 Guava Collections

NodeJs深入浅出之旅:包与NPM 🌛

空城机

大前端 Node 8月日更

Flutter 绘制动机 VSYNC 流程源码全方位分析

工匠若水

flutter android 8月日更

观察者模式

wzh

面试 设计模式 观察者模式

装饰器模式

wzh

面试 设计模式 装饰器

从程序与机器码看低代码演进方向

李印

编程 低代码

架构实战训练营模块1 作业

Sonichen

Go- 指针

HelloBug

指针 Go 语言

策略模式

wzh

面试 设计模式 策略模式

回调模式

wzh

面试 设计模式 回调函数

类加载机制

wzh

Java 面试 JVM 类加载器 JVM类加载

java操作sql server数据库

Python研究者

8月日更

JAVA 规范

gin

Go- 字符串

HelloBug

索引 字符串 Go 语言 拼接 长度

Nginx-基本概念和使用

Rubble

8月日更

kubernetes/k8s CNI 分析 - 容器网络接口分析

良凯尔

Kubernetes 源码分析 Kubernetes Plugin #Kubernetes# cni

CSS的设计模式(三)ITCSS

Augus

CSS 8月日更

@ConditionOnClass的使用

Rubble

8月日更

【布道API】权限错误码选择:401、403 或 404

devpoint

HTTP Authorization REST API 8月日更

Vue进阶(五十五):vue-cli 脚手架 build.js 配置文件详解

No Silver Bullet

Vue 8月日更

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