Ruby 3 将于圣诞节发布,松本行弘分享编程语言的困境

oschina
 oschina
发布于 2020年09月06日
收藏 4

Ruby 编程语言的创建者和首席设计师 Yukihiro Matsumoto(松本行弘)近期在某演讲中分享了 Ruby 3 的一些情况。

原本 Ruby 3 计划在东京奥运会前夜发布,但奥运会被推迟到 2021 年,所以一些核心开发者想知道 Ruby 3 是否也会顺理成章地推迟一年发布。讨论后最终还是决定今年发布,并且现在定于 12 月 25 日。

“我们决定今年发布 Ruby 3,因为作为开源社区,我们必须前进。我们必须继续前进,开源社区通常不能停止发展,否则就是等死……”松本表示,过去四五年一直在谈论 Ruby 3 的未来,但是一直也没见发布,不过今年是真的会在 12 月 25 日圣诞节推出 Ruby 3。在圣诞节发布 Ruby 升级是社区的一项传统。

接着松本分享了所有编程语言面临的困境:升级与不升级的矛盾。在应用运行稳定的基础上,如果大改语言,那么就会带来艰难升级的危险,Python、PHP 与 ECMAScript 都是很好的例子,它们的社区花了许多年才能接受这些变化。“使用 Python 3,社区花了十多年的时间;PHP 6 甚至被取消了,直接从 PHP 5 开始创建 PHP7;EMCAScript 4 也被取消了。”

松本解释说,如果不做出改变,人们可能会离开社区,而如果升级到更高版本则会带来太多痛苦,他们也可能会离开社区。这种进退两难的情况可能是每个编程语言面临的困境,不过松本觉得这种时候更应该向前:“因此,正如我所说,设计一种语言很困难,但是无论如何我们都必须向前迈进,以创造未来。”

同时,在这种情况下,保持兼容性是很重要的。松本为 Ruby 3 明确了三个具体的目标:快速、并发与准确。“使 Ruby 更快,并使 Ruby 程序员更高效”。

为了使 Ruby 更快,开发团队将从改进其即时编译器(JIT)着手;为了实现并发,将避免使用其它语言的解决方案,诸如 ECSMAScript 7 添加了带有关键字 async 和 await 的控制机制,Ruby 3 会改为实现其期待已久的异步 i/o fiber,作为控制异步线程的更好的方法。fiber 之间的上下文切换速度很快,因此性能会更高。

让 Ruby 更加准确的方法是优化早期错误检查,主要靠类型分析器实现,它将生成 Ruby 签名,Ruby 3 将为其核心库提供类型签名,可用于类型检查以及增强将来的 IDE。

松本还介绍了 Ruby 3 将带来的三个新语法特性。第一个是便捷的模式匹配语法:

第二个新特性允许将值分配给等号右侧的变量,“这在某些情况下非常方便。”

第三个新特性是为块参数编号:

不过松本也解释,Ruby 3 语法上不会有太大变化,稳定性很重要,他们将专注于改进 Ruby 的现有支持工具,例如用于语言服务器协议的 Solargraph、用于静态类型检查的 Sorbet,以及 Rubocop 的代码 linter。

最后松本提及目前他正在考虑的“较小的 Ruby”这一疯狂的想法,“我正在考虑使用较小的 Ruby 子集,该子集更简单并且更严格,并希望更快或更容易进行优化。”这一子集是向下兼容的,也就是说,它可以运行在所有当前版本的 Ruby 中。

本文消息与图片来自 thenewstack,具体内容可以查看原文与演讲视频。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Ruby 3 将于圣诞节发布,松本行弘分享编程语言的困境
加载中

精彩评论

s
skyyxujinsong
开源中国这个展开阅读是个sb设计的吧?
W
WindSpeed
我倒是认为Ruby可以大刀阔斧的改进一些历史遗留问题,没必要一直兼容历史版本,推出一个更优化的设计,也是为了以后更好的发展,java9的模块化,ES6,Python3,PHP7,.net core的跨平台,几乎都是不兼容的断崖式升级,但事实证明虽然当时可能升级困难,但老项目基本还用老版本,新项目直接开新版本了,并不会造成太大的问题
潇湘风夜
潇湘风夜
Python3的升级感觉就是升级了一半,把Python2的60%坑给填了,又新增了10%的坑。
Finally, we need Python4.:sob:
南漂一卒
南漂一卒
PHP 7、ES 6 都是向下兼容的,而且 JS 还有 Babel、TypeScript 这样的编译器,社区早标准很多年就在生产环境用新东西。
W
WindSpeed
php7部分兼容php5,不是完全兼容的,php5的代码不修改直接用php7运行会报错的,而Ruby是追求完全兼容,也就是ruby1的代码不经过修改都可以直接跑在ruby3上

最新评论(60

青怪
青怪
ruby是我这种傻瓜程序猿用过最性感的语言,就是当初因为做了一个网站,性能太低而放弃了,加油RUBY。
专业写BUG的程序员
专业写BUG的程序员
其实java向后兼容做得还可以吧,面向接口的编程。
一桶冷水
我又不是没糊过PHP:大方向对就行了,其他的问题高兴就是bug,不高兴就是feature。
帖子列表
帖子列表
php 没有断崖式升级好吗, python 才是。
蟋蟀哥哥
蟋蟀哥哥
Ruby是我见过最慢的语言,没有之一
水溶C100
水溶C100
完全学csdn的,SD设计
半缘修道半缘君丶
半缘修道半缘君丶
改的好丑
n
newlife111
这里肯定有csdn的影响,太多的借鉴。
谁杀了我的牛
看评论也恶心操··非要登陆
s
skyyxujinsong
开源中国这个展开阅读是个sb设计的吧?
返回顶部
顶部