首页 » PHP教程 » phpruby开辟速度技巧_设计一款编程措辞有多灾Ruby 首创人揭秘

phpruby开辟速度技巧_设计一款编程措辞有多灾Ruby 首创人揭秘

访客 2024-11-10 0

扫一扫用手机浏览

文章目录 [+]

译者 | 弯月,责编 | 郑丽媛

头图 | CSDN 下载自视觉中国

phpruby开辟速度技巧_设计一款编程措辞有多灾Ruby 首创人揭秘

出品 | CSDN(ID:CSDNnews)

phpruby开辟速度技巧_设计一款编程措辞有多灾Ruby 首创人揭秘
(图片来自网络侵删)

以下为译文:

最近,Ruby编程措辞的创始人兼主设计师、云平台即做事公司Heroku的Ruby首席架构师松本行弘在一次演讲中表示,由松本行弘领导的Ruby社区对该编程措辞的发展进行了深入思考。
这次30分钟的演讲中还提到了该编程措辞即将迎来激动民气的新发展。

松本表示:“在过去的四五年间,我一贯在评论辩论Ruby 3的未来。
大概很多人已经厌倦了这种旧调重弹。
但是今年Ruby 3真的要来了,今年12月25日圣诞节Ruby 3将正式发布。
”在圣诞节当天发布Ruby措辞升级是该措辞的一项传统。

“如果统统顺利的话,我们将于12月正式发布Ruby 3,除非涌现非常糟糕的意外。

设计师的困境

来自天下各地(从印度到印度尼西亚,从巴西到柏林)的数百名不雅观众不雅观看了松本的直播,很多人揭橥了激情亲切洋溢的评论。
他们聚拢在一起不雅观看为Ruby的发展付出了25年心血的松本的演讲。
听说,Ruby 3本来操持于东京奥运会的前夕推出,但由于奥运会被推迟到2021年,因此核心开拓职员疑惑Ruby 3是否也该当推迟一年。

“但是经由一番谈论,我们决定于今年发布Ruby 3,由于作为开源社区,我们必须向前迈进。
我们必须不断提高,开源社区常日不能停滞发展,否则,就会面临去世亡……”。

松本深刻地描述了所有措辞设计师所面临的困境。
“每个人都喜好新事物,因此,作为程序员和工程师,我也喜好新事物。
此外,我非常喜好措辞,以是我喜好研究新的编程措辞,比如Elixir、Rust、Go等。
我为这些措辞感到非常愉快。
”然而,这也为Ruby措辞的变革带来了压力。
松本说:“Ruby有点年头了,它于1995年发布。
我们只是凡人。
我们犯了一些缺点。
因此作为措辞设计师,我们希望纠正过去的缺点。

但与此同时,“没有人希望经历痛楚。
”在所有Web运用程序都在利用Ruby现有版本的情形下,强制开拓职员升级有点危险,“没有人喜好痛楚。
从这个意义上讲,Ruby该当是稳定的。
这彷佛有点抵牾吧?”

“因此,Ruby措辞的设计以及措辞的操持很难战胜这种抵牾。
这种抵牾是我们发自内心的。

他讲述了其他面临类似困境的编程措辞,包括Python、PHP和ECMAScript,并指出这些社区花费了多年的心血才让大家接管了这些变革。
例如Python 3,社区花费了十多年的韶光,而PHP 6乃至被取消了。
他们在发布之前放弃了重大变动,然后从PHP 5直接跳到了PHP 7。
EMCAScript4也被取消了。

松本阐明说,如果不进行变动,人们可能会离开社区。
“他们会由于无聊而停滞利用Ruby。
”但同时他也担心,如果升级到更高版本带来的痛楚太多,那么他们可能也会离开社区,由于他们会决定“大概我们的下一个项目该当采取Rust、Go或其他编程措辞。

“因此,设计一种措辞很困难,但是无论如何我们都必须向前迈进,以创造未来。

让Ruby重振光辉

在演讲中,松本还概述了保持兼容性的操持,同时“加快Rust的速率,提高Ruby程序员的效率。
”他确定了三个明确而详细的目标,这些目标代表了即将发布的Ruby 3的特色:快速、并发与精确。

为了加快Ruby的速率,开拓团队将动手改进其JIT编译器(用于天生原生代码)。
为了实现并发,他们没有选择其他措辞的办理方案,而是打算考试测验自己的一种方法。
Node.js添加了Promise来关照异步操作的完成,而ECSMAScript 7添加了带有关键字async和await的掌握机制,但Ruby 3将实现人们期待已久的异步i/o功能“fiber”,作为更好的掌握异步线程的方法。
”由于在fiber之间切换高下文很快,因此可以提高性能。

他们认为这种方法能够提升性能的另一个缘故原由是:它是由Ruby的falcon运用做事器的创建者开拓的,松本认为这个项目非常快。
但这并不是他们提高性能的唯一方法。
他们还实现了“Ractor”(即Ruby Actor),类似于JavaScript供应背后“Web worker”脚本的办法。
每个Ractor都可以并走运行,松本阐明说,这利用了当代多核系统中的并行处理。

Ruby的第三个目标是精确性,这个目标指的是提早检讨缺点,紧张由类型剖析器卖力实现,它将天生Ruby署名(松本将之类比为TypeScript中描述类型的d.ts文件)。
Ruby 3将为其核心库供应类型署名,可用于类型检讨,还可以用于增强将来的IDE。

但是它也有其局限性。
松本阐明道:“我们不追求类型系统的完全性和合理性,由于Ruby便是Ruby。
Ruby基本上是动态类型的,这意味着,纵然我们现在有了渐进式类型系统,也无法进行任何完备精确的类型检讨,以是只能放弃。
我们不会在语法中添加类型声明。

三种新功能

Ruby 3的语法发生了一些变革。
松本对三个新特性非常满意,他表示:“Ruby会越来越好。
首先是繁芜的模式匹配语法,你不必解构数组和哈希,由于可以编写模式,非常简便。

第二个新功能可以给等号右侧的变量赋值。
他说,虽然从外不雅观来看,我们会以为有点“不自然”,IDE也会有点不适应,由于一样平常表达式都以变量开头,纵然将值分配给很长的一个代码块也是如此。
“如果可以反过来,将赋值变成右值运算,那么看起来会很自然,但我们并不建议在所有地方利用。
你不必用右值赋值来更换每个赋值操作,但是在某些情形下,这非常方便。

Ruby 3中的第三个新功能是编号的块参数,“你不必再给临时确当地块参数起名字。

松本表示:“稳定性很主要”,以是他并没有表示Ruby 3之后会有任何重大的语法变革。
相反,他们将专注于改进Ruby现有的支持工具,例如用于措辞做事器协议的Solargraph,用于静态类型检讨的Sorbet,以及帮助开拓职员编写出符合Ruby规范的代码的Rubocop 。
“这些工具证明,工具越好带来的用户体验就越好。
因此,我们必须连续努力。
我认为我们须要更多的工具,然后我们还须要改进这些工具。
”松本还希望看到更好的类型检讨工具和格式化工具,或者更好的性能调度和调试工具。
此外,对付如何加快Ruby的速率,松本还有一些其他想法,例如在位于虚拟机上方设置另一个轻量级JIT编译器,比如MIR或DynASM。

更加轻量级的Ruby

末了,在有关Ruby 3的谈论中,松本还提到了另一个想法:“虽然这只是一个猖獗的主张,但我正在考虑建立一个更加轻量级的Ruby子集,这个子集不仅更大略更严格,而且更快或更随意马虎优化。

这个Ruby子集可以向下兼容,即可以在所有现有已有的Ruby版本中运行(只管并非所有版本的Ruby都可以在这个轻量级的Ruby中运行)。
在阐明其基本事理时,松本展示了一张幻灯片,上面写着:“这款轻量级的Ruby运行得更快。
”他表示:“这只是一个初步的想法。
还不是十分明确。
我们必须保持兼容性,但是如果我们止步于这个Ruby子集,那么可能会缺少灵巧性,但是该当更随意马虎优化。

松本还表示:“我有很多猖獗的想法,我们会逐个考试测验,让Ruby变得越来越好。

原文:https://thenewstack.io/ruby-creator-yukihiro-matsumoto-on-the-challenges-of-updating-a-programming-language

本文为 CSDN 翻译,转载请注明来源出处。

点分享

标签:

相关文章