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 中。
責編AJX
-
源代碼
+關注
關注
96文章
2953瀏覽量
70307 -
開源工具
+關注
關注
0文章
27瀏覽量
4774 -
ruby
+關注
關注
0文章
44瀏覽量
3875
發布評論請先 登錄
NVIDIA CEO 黃仁勛與全球技術領導者在 GTC 2026 大會共話 AI 時代
適用1-3節電池快速充電方案 :ECP5702 PD誘騙芯片與FP8207 同步降壓充電芯片
WYBOT S3登陸澳洲,樹立泳池機器人行業新標桿
BM3451系列 3/4/5 節可充電電池保護 IC技術手冊
IP3255 3?節/4?節串聯用電池保護 IC(自帶電池均衡)
IP3254?? 3?節/4?節串聯用電池保護 IC(科發鑫 英集芯指定代理)
Texas Instruments BQ76922 3至5節電池監控器數據手冊
谷歌Gemma 3n預覽版全新發布
u-blox發布首款車規級Wi-Fi 7模塊RUBY-W2
使用FX3 SDK發布源代碼是否違反許可?
HTC6632 6631 高效同步升壓型2A雙節/3節鋰電池充電芯片中文手冊
弘信電子旗下燧弘華創與聯想發布多元異構算力調度平臺
HTC6632, HTC6631高效同步升壓型2A雙節/3節鋰電池充電器
Ruby 3將于今年圣誕節發布,設計者松本行弘分享Ruby 3的部分細節
評論