0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

松本:今年Ruby 3真的要来了

工程师 来源:CSDN 作者:CSDN 2020-09-15 15:43 次阅读

设计一款编程语言有多难?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变得越来越好。”

作者 | DAVID CASSEL

译者 | 弯月

来源:CSDN

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3615

    浏览量

    93717
  • ruby
    +关注

    关注

    0

    文章

    44

    浏览量

    3452
收藏 人收藏

    评论

    相关推荐

    HBM3E量产后,第六代HBM4要来了

    电子发烧友网报道(文/黄晶晶)眼下各家存储芯片厂商的HBM3E陆续量产,HBM4正在紧锣密鼓地研发,从规格标准到工艺制程、封装技术等都有所进展,原本SK海力士计划2026年量产HBM4,不过最近
    的头像 发表于 07-28 00:58 4935次阅读
    HBM<b class='flag-5'>3</b>E量产后,第六代HBM4<b class='flag-5'>要来了</b>!

    今年西安最大IPO来了,奕斯伟材料

    IPO来了,奕斯伟材料估值240亿元。 目前西安奕斯伟材料科技股份有限公司(奕斯伟材料)科创板IPO申请正式获上交所受理。 奕斯伟集团核心业务涵盖芯片与方案、硅材料、生态链投资孵化三大领域。奕斯伟的硅材料业务主要包括半导体级12英寸硅单晶抛光片和外延片
    的头像 发表于 12-03 16:33 592次阅读

    居然还有这样的10.1寸光场裸眼3D视觉训练平板电脑?

    在这个科技飞速发展的时代,我们为您带来了一款革命性的产品——10.1寸光场裸眼3D视觉训练平板电脑。这款平板电脑不仅让您无需佩戴3D眼镜就能享受逼真的立体视觉效果,还通过先进的技术帮助
    的头像 发表于 07-25 14:09 275次阅读
    居然还有这样的10.1寸光场裸眼<b class='flag-5'>3</b>D视觉训练平板电脑?

    车路云协同,这次它真的来了吗?

    随着科技的快速发展,“车路云协同”正在悄然发生变化。我们离科幻电影《机械公敌》中威尔•史密斯驾驶的汽车能准确甄别交通状况并调整行驶状态的时代就要来了吗?背景说明“车路协同”已经不是什么新鲜名词
    的头像 发表于 06-13 08:25 512次阅读
    车路云协同,这次它<b class='flag-5'>真的</b><b class='flag-5'>来了</b>吗?

    锐评Ruby 3.4.0 默认启用字符串字面量冻结功能

    据悉,Ruby自2.3版起引入了“冻结”机制,通过使用frozen_string_literal: true魔法注释,可令文件内所有字符串字面量默认为冻结状态,防止开发过程中无意修改字符串,提高代码稳定性与性能,降低内存占用。
    的头像 发表于 05-17 15:44 377次阅读

    OpenAI的AI搜索也要来了,但我们需要这么多AI搜索么

    OpenAI要做AI搜索挑战谷歌这件事已经传了很久,传说中的SearchGPT似乎真的要来了。据软件开发者TiborBlaho爆料,OpenAI的AI搜索产品Sonic-SNC(SearchGPT
    的头像 发表于 05-10 08:05 348次阅读
    OpenAI的AI搜索也<b class='flag-5'>要来了</b>,但我们需要这么多AI搜索么

    腾讯突然宣布,微信鸿蒙版要来了

    应用,仅支持鸿蒙内核和系统的应用,被称为 “纯血鸿蒙”而备受关注, 这意味着, 真正的国产手机操作系统要来了 ,而且影响力惊人, 一上线就是仅次于 Android 和 iOS 之后的全球第三大手机操作系统
    发表于 04-30 19:34

    苹果折叠屏iPhone新专利获批 苹果折叠屏手机要来了吗?

    苹果折叠屏iPhone新专利获批 苹果折叠屏手机要来了吗? 我们看到苹果公司折叠屏iPhone专利已经获批;果粉都在期待的苹果折叠屏手机要来了吗?新专利也显示苹果已经找到了提升折叠屏耐用耐摔性的方法
    的头像 发表于 04-17 17:05 1309次阅读

    聊聊今年很火的3CC

    █什么是3CC3CC,全称叫3ComponentCarriers,三载波聚合或三载波单元。(Component是“组成、部件”的意思,而Carrier是“载波、载体”的意思,3CC直译应该是“三个
    的头像 发表于 04-13 08:05 752次阅读
    聊聊<b class='flag-5'>今年</b>很火的<b class='flag-5'>3</b>CC

    在界面有改动前点击生成代码是可以的,但是加了一个textArea后生成就失败了的原因?

    -j10Converting imagesD:/TouchGFX/4.13.0/env/MinGW/msys/1.0/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems
    发表于 04-01 08:11

    华为P70要来了!主打高性能摄像头

    ,16GB+1TB版售价9988元。 对此,华为方面表示,上述传闻不是真的,目前还没有官方消息透露。考虑到新机一般都需要一定的预热期,现如今都已经来到2024年3月末,本月,华为P70或许不会问世。 此前,知名
    的头像 发表于 03-27 09:19 1956次阅读

    OpenAI预计最快今年夏天发布GPT-5

    OpenAI正计划在未来数月内,可能是今年夏季,发布备受瞩目的GPT-5模型。据悉,部分企业客户已提前体验了OpenAI最新模型及其ChatGPT工具的改进版Demo。一位CEO在体验后赞不绝口:“它真的令人惊艳,相较于之前的版本,GPT-5带
    的头像 发表于 03-22 10:40 768次阅读

    开工当天被裁,抱歉各位!今年岗位真的要选好……

    ​新年刚过,返工在即。程序员们都收到大大小小的开门红,开启今年新征程。但是有人欢喜有人忧…… 本想着2024年Android行业会好过一些,还是避免不了裁员风险。在安卓历经了10多年的发展后,因为
    发表于 02-28 21:19

    鸿海展望今年AI服务器需求,将成为主要营收增长来源

    对AI行业近年来的蓬勃发展给予充分肯定,巫俊毅指出,其背后的推动力主要来自软件开发及应用领域,而硬件市场自然也可借此东风。他说,正如国际各大企业普遍认为的那样,今年及明年的AI市场前景依然向好,预计涨幅亦较显著。
    的头像 发表于 02-18 11:16 521次阅读

    苹果12.9英寸巨屏iPad Air要来了

    苹果会在每年3月份针对iPad产品线进行更新,今年iPad Air系列将会带来一个史无前例的大变化,新增一个大屏版本。
    的头像 发表于 01-23 09:08 861次阅读