Ruby 之父:Ruby3 有望 3 倍提速,不添加类型推断

王练
 王练
发布于 2018年04月09日
收藏 8

2018 年是 Ruby 诞生的第 25 年,这门一贯被贴上保守、平衡、严谨等标签的语言,不知不觉已发展了 1/4 个世纪。Ruby 首次公开发布是在 1995 年的 12 月 25 日,但其创始人 Yukihiro Matsumoto(网络昵称 “Matz” ) 认为当他命名 Ruby 时,就是 Ruby 的诞生日,也就是 1993 年的 2 月 24 日。

Ruby 出生的前几年,并未得到太多关注。2003 年 Rails 的出现,改变了 Ruby 原有的生态系统,也让 Ruby 开始得到更广泛的应用,并在后续几年达到高峰。直到 2009 年,随着 Twitter 从 Ruby 转向 Scala 以及其他一些语言的发展,Ruby 的热度出现下降。当然,时至今日,Ruby 在各个编程语言排行榜中的排名依然不低。

关于下一个 25 年,Matz 在 Ruby 25 周年的庆祝会上以及近日在接受采访时都曾表示,Ruby 的核心开发团队现在正在开发的是如何在现有技术之上进行改进的新 Ruby ,而不会是一个全新的、完全不同的 Ruby 。希望 Ruby 能够成为开发者长期使用的语言,而不是以前使用过的语言。

编程语言的发展目标其实都是“提高生产力”,Ruby 同样如此。Matz 透露 Ruby 3 将朝三个方向进行推动,即快速、分布式(可伸缩)和精明(分析),最终有望实现 3 倍提速。Ruby 3 计划在 2020 年发布,在此期间,Ruby 不会冒然带来不兼容的更改,而是选择在每年的版本发布中添加一些新功能,当达到制定的目标时,就是 Ruby 3 。

至于今年发布的 Ruby 2.6 ,则将率先引入 MJIT 。

有意思的是,当被问到关于编码标准的问题时,Matz 表示自己并不是那种关心编码标准的人。Matz 说:“有些人甚至会说如果没有编码标准,他们就无法入门。这让我想知道你是真的在工作吗?这是你应该思考的问题。当然,如果缩进宽度以及使用空格或制表符等内容不统一,编译起来会导致很多差异。所以,如果是团队合作,这些事情应该提前讨论和统一。程序员都有独立的倾向,更喜欢自己决定工作。如果有人像对待婴儿一样告诉你要遵循提供的所有规则,我认为他们没有把你当作程序员来对待。我不希望别人像那样对我,这也就是为什么我不想这样对待其他人”。

此外,Matz 认为未来软件开发将变得更加互动。未来的计算机甚至可能会更进一步,当编写的源代码在语法上不正确时,机器将指出语法错误,并给出从错误的代码更改为正确代码的建议。对于 Ruby 而言,语言本身将保持现在的紧凑性,高级分析功能(如类型推断)将通过 IDE 等外部工具或类似工具完成,而不会是 Ruby 本身的代码实现。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Ruby 之父:Ruby3 有望 3 倍提速,不添加类型推断
加载中

精彩评论

大后锋
大后锋

引用来自“回去干活”的评论

未来都是编译型的语言天下。go,swift,rust等。
脚本只有js能活。

引用来自“MrD”的评论

大师能帮我算一卦吗?我女朋友到底啥时候出现...
等IOS支持java开发时,就是你女朋友出现之时
回去干活
回去干活
未来都是编译型的语言天下。go,swift,rust等。
脚本只有js能活。
eechen
eechen
不像其他语言的JIT编译器,Ruby的JIT编译器把Ruby代码翻译成C代码,调用GCC等编译器生成机器码.
https://www.ruby-lang.org/en/news/2018/02/24/ruby-2-6-0-preview1-released/

PHP7的JIT不再围绕LLVM的JIT构建,而是围绕LuaJIT的DynASM来构建:
https://www.zhihu.com/question/27199764/answer/141257191
https://github.com/zendtech/php-src/commits/jit-dynasm
https://github.com/zendtech/php-src/blob/jit-dynasm/ext/opcache/jit/zend_jit_x86.dasc
DynASM(Dynamic Assembler)是一个预处理器和小型运行时库,用于创建汇编程序和JIT编译器,供C/C++使用.
http://luajit.org/dynasm.html
http://corsix.github.io/dynasm-doc/
DynASM已经有了LuaJIT这个成熟的产品代言,PHP JIT成功的概率也大大提高,鸟哥和斯托戈夫加油.
Daniel-01
Daniel-01
Ruby 之父:我往 Ruby 的 图标上,加了 一个 红色角,酱紫 就可以 开启 三倍速:trollface:
MrD
MrD

引用来自“回去干活”的评论

未来都是编译型的语言天下。go,swift,rust等。
脚本只有js能活。
大师能帮我算一卦吗?我女朋友到底啥时候出现...

最新评论(24

shadow7717
shadow7717

引用来自“回去干活”的评论

未来都是编译型的语言天下。go,swift,rust等。
脚本只有js能活。
python 不服😑
p
phper08
国内用Ruby的人少
开源狂人
开源狂人

引用来自“回去干活”的评论

未来都是编译型的语言天下。go,swift,rust等。
脚本只有js能活。

引用来自“MrD”的评论

大师能帮我算一卦吗?我女朋友到底啥时候出现...

引用来自“大后锋”的评论

等IOS支持java开发时,就是你女朋友出现之时
或者中国男足再进世界杯的时候
开源中国胖纸
开源中国胖纸
"未来的计算机甚至可能会更进一步,当编写的源代码在语法上不正确时,机器将指出语法错误,并给出从错误的代码更改为正确代码的建议。",现在的IDE不支持吗
eechen
eechen
不像其他语言的JIT编译器,Ruby的JIT编译器把Ruby代码翻译成C代码,调用GCC等编译器生成机器码.
https://www.ruby-lang.org/en/news/2018/02/24/ruby-2-6-0-preview1-released/

PHP7的JIT不再围绕LLVM的JIT构建,而是围绕LuaJIT的DynASM来构建:
https://www.zhihu.com/question/27199764/answer/141257191
https://github.com/zendtech/php-src/commits/jit-dynasm
https://github.com/zendtech/php-src/blob/jit-dynasm/ext/opcache/jit/zend_jit_x86.dasc
DynASM(Dynamic Assembler)是一个预处理器和小型运行时库,用于创建汇编程序和JIT编译器,供C/C++使用.
http://luajit.org/dynasm.html
http://corsix.github.io/dynasm-doc/
DynASM已经有了LuaJIT这个成熟的产品代言,PHP JIT成功的概率也大大提高,鸟哥和斯托戈夫加油.
Lucixfer
Lucixfer

引用来自“红薯”的评论

真的假的
真的,Ruby 2.6 mjit版本已经快了很多~
开源中国首席罗纳尔多
开源中国首席罗纳尔多
这么快的嘛吗??
encro
encro

引用来自“回去干活”的评论

未来都是编译型的语言天下。go,swift,rust等。
脚本只有js能活。
大概不知道现在很多都转typescript了。
帖子列表
帖子列表

引用来自“开源中国-首席村长”的评论

我去,要吊打PHP的节奏啊。。
PHP 已经被各种吊打了好几年了
回去干活
回去干活

引用来自“回去干活”的评论

未来都是编译型的语言天下。go,swift,rust等。
脚本只有js能活。

引用来自“Raymin”的评论

go 就算了!Android 和 Chrome 都不愿意用。
golang还是可以的,只是语法特性不适用于UI这块。
主要是密集型的IO,在服务端这块作用很大。
返回顶部
顶部