Linux.中国 - 开源社区

 找回密码
 骑士注册

QQ登录

微博登录


为什么我说 Rust 是靠谱的编程语言

2015-5-19 10:19       

9. 不拘一格聘请专业技术人员

Steve Klabnik之前写过一篇介绍Rust的入门教程 Rust for Rubyists,文风娓娓道来,深得群众喜爱。2014年2月,Rust官方人员看重了他的文档写作才华,付费 聘请 他全职为Rust 创作文档。他的主要代表作是Rust官方的 The Rust Programming Language(Rust Book),以及大量API Docs。因为其卓越贡献,steveklabnik目前已经是Rust核心开发组 成员。

Tilde公司以前开发的Ruby包管理器Bundler在Ruby领域非常流行,其架构设计被实践证实获得成功。2014年3月,Rust官方 宣布 聘请 Tilde公司的核心技术人员Yehuda Katz和Carl Lerche,全职为Rust设计开发全新的开源的Cargo,目标是打造世界级的包管理器("a world-class package manager for Rust")。现在Cargo已经初步获得了很大的成功,还在蓬勃发展中。因为Yehuda Katz的突出贡献,他已经成为Rust核心开发组 成员。

深受好评的Rust学习示例网站 http://rustbyexample.com 的早期创建者 Jorge Aparicio(japaric) 后来被邀请 加入 了(Mozilla公司的)Rust官方团队。

去 meeting-minutes 里面搜索 "Friend of the Tree" 或 "fott" 你会发现更多人陆续加入了Rust团队。

10. 大规模的广泛的社区参与

社区用Rust开发的或与Rust相关的开源项目进展地风风火火: ServoCargo,rust-by-example,Hyper,Piston,coreutils,rust-postgres,gfx-rs,conrod,rust-sdl2,rust-crypto,docopt.rs,zinc,gl-rs,racer,rust-bindgen,glfw-rs,capnproto-rust,rust-rosetta,graphics,rust-opensslrust-encodinghematitecapnproto-rust,glium,html5ever,glutin,rust-layers,rust-serde ……

我上面列出的多是长期以来持续开发和维护的项目,这在Rust语言长期剧烈变动的情况下愈显弥足珍贵。理智的人们不会无缘无故的花费大量时间和精力。许多忠实的第三方开发者长期地投资Rust项目,体现了他们对于Rust语言的热爱和对其前景的看好。

10.1. 社区合力完成的项目(libextra, diagnostics):

10.1.1. 分解extra库 Issue #8784
10.1.2. 详解编译错误Issue #24407
10.1.3. 排错语言手册Issue #16676

10.2. 社区广泛参与的大型技术讨论:

10.2.1. inherents:

围绕实现“继承”这一语言特性,社区涌现出一批设计方案,一时间争奇斗艳。暂时没有结果,最终决策要在1.0之后才能做出。(括号内是评论数,下同。)

10.2.2. scoped thread:

2015年4月11日爆出这个大BUG(Issue #24292),直接拷问Rust“内存安全”核心概念,当时距离1.0发布已不足5周时间。要知道,刚刚一天前,std::thread::scoped()还被官博 当作既安全又典雅的优秀API的典型、满怀骄傲地向全世界推介。是不幸,还是该庆幸?我认为该庆幸,有机会消除一个隐患,而不是在不知情中带着重大缺陷进入1.0。

官方人员一味的强调 Issue #24292 是个例,一味的强调“不保证析构函数务必执行”不违反内存安全,并不能消除群众心中的不安全感。在我看来,官方人员给出的解决方案(RFC PR #1066 #1084)一个是“头痛医头”一个是“脚痛医脚”,反而是民间技术人员提交的方案(RFC PR #1085 #1094)更接地气,至少是朝群众期望的方向努力了。可能是1.0发布日期逼近,实在没有时间评估和实施其他方案,最终官方坚持通过了RFC #1066。这一次我给他们集体评负分。好在他们广泛深入地参与了所有相关的讨论,内部无争议地做出了理性决策,结果未必坏。

10.2.3. mutable & unique:

Rust社区对于可变性(mutable)和唯一性(unique)的反思和争议。所有这些话题,都引发了许多热烈的讨论和激烈的争论,火热程度空前。之前 reddit.com/r/rust 内评论数达到200+的极为少见。

  • 先是RFC 58,DaGenix 要求把 &mut 改为 &only(50+)

  • 再是 Nicholas 要求彻底取消mut,增加 unique(240+) 引用

  • 还有pcwalton发出的 追问(180+):谁表达更清晰,可变性(mutability)还是唯一性(uniqueness)?

10.2.4. others
  • int/uint ⇒ isize/usize:

  • integer overflow:

  • reddit/HN hot posts:

  • Rust中文社区(rust.cc, 新手QQ群:303838735)

大量的、广泛的、深入的社区技术讨论,体现了人民群众积极参与Rust开源项目的热情。多个体、多角度、多出发点的争论,有利于参与者充分认清同一个技术问题,有利于鉴别各方案的优缺点,有利于折中优选最佳可行方案。优质社区是Rust发展的基石。

当多方争论不相上下的时候,我们发现,Rust拥有一个坚强的核心团队(the core team),总是会应急出面,充当主心骨,做出最终的理性决策,避免出现互相扯皮却始终一事无成的最坏结局。他们的实力是有目共睹的,他们的信誉是逐步赢得的,他们做出的选择,不一定是最优的,但一定也不差。

作者:@Liigo(庄晓立)

1234
查看其它分页:

发表评论


最新评论

我也要发表评论

返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。