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文章
2945瀏覽量
66779 -
開源工具
+關注
關注
0文章
27瀏覽量
4501 -
ruby
+關注
關注
0文章
44瀏覽量
3457
發布評論請先 登錄
相關推薦
評論