Ruby编程语言的创建者和首席设计师Yukihiro Matsumoto(Yukihiro Matsumoto)在最近的一次演讲中分享了Ruby3的部分情况。
最初,Ruby3应该在东京奥运会的前夕发布,但奥运会被推迟到2021年,因此一些核心开发人员想知道Ruby3是否当然会推迟一年。经过讨论,最终决定于今年发行,现在定于12月25日。
“我们决定在今年发布Ruby3,因为我们必须作为一个开源社区向前迈进。我们必须继续前进。开源社区通常不能停止发展,或者只是消亡…”
松本说,他已经谈论了过去四,五年内Ruby 3的未来,但从未发布过,但是今年确实是Ruby 3于12月25日圣诞节发布。这是社区的传统,今年圣诞节发布Ruby升级。
然后,松本人分享了所有编程语言的困境:升级与不升级之间的矛盾。在稳定的应用程序操作的基础上,语言的重大更改可能会导致困难的升级.Python,PHP和ECMAScript是很好的例子,他们的社区花了很多年才能接受这些更改。“社区使用Python3已有十多年的历史。甚至取消了PHP6,并且直接从PHP5构建了PHP7。EMCAScript4也被取消了。”
松本表示,如果不做任何改动,人们可以离开社区,如果升级到更高版本会带来太多痛苦,那么您也可能会离开社区。
这种困境可能是每种编程语言都面临的困境,但松本认为时间应该更早了:“正如我所说,设计一种语言很困难,但是我们仍然必须前进。设计未来。”
同时,在这种情况下,保持兼容性非常重要。松本为Ruby3定义了三个特定的目标:快速,同步和准确:“使Ruby更快并使Ruby程序员更高效。”
为了使Ruby更快,开发团队将首先改进其即时编译器(JIT)。为了实现并行性,避免使用其他语言的解决方案,例如B。ECSMAScript7添加了异步关键字控制机制并等待Ruby3,相反,请实现期待已久的异步i / ofiber以更好地控制异步线程。光纤之间的上下文切换速度很快,因此性能更好。
为了使Ruby更准确,您需要优化早期错误检查,这主要由生成Ruby签名的类型分析器实现.Ruby3为其核心库提供了类型签名,可用于类型检查和将来的IDE的增强。
松本还引入了Ruby3将提供的三个新语法功能。第一个是用于模式匹配的便捷语法:
第二个新函数允许为变量赋等号右边的值。“这在某些情况下非常有用。”
第三个创新是块参数的编号:
然而,松本还指出,Ruby3语法不会发生重大变化,并且稳定性非常重要,它们专注于增强Ruby现有的支持工具,例如用于语音服务器日志的Solargraph,用于静态类型检查的Sorbet和Rubocop的代码linter。
最后,松本提到了他目前正在考虑的“较小的Ruby”这个疯狂的想法:“我正在考虑使用更简单更严格的较小的Ruby子集,并希望更快或更容易地进行优化。”
该子集是向后兼容的,这意味着它可以在所有当前版本的Ruby中执行。
我认为很好,请订购一个,看看