Ruby 編程語言的創(chuàng)建者和首席設計師 Yukihiro Matsumoto(松本行弘)近期在某演講中分享了 Ruby 3 的一些情況。
原本 Ruby 3 計劃在東京奧運會前夜發(fā)布,但奧運會被推遲到 2021 年,所以一些核心開發(fā)者想知道 Ruby 3 是否也會順理成章地推遲一年發(fā)布。討論后最終還是決定今年發(fā)布,并且現(xiàn)在定于 12 月 25 日。
“我們決定今年發(fā)布 Ruby 3,因為作為開源社區(qū),我們必須前進。我們必須繼續(xù)前進,開源社區(qū)通常不能停止發(fā)展,否則就是等死……”松本表示,過去四五年一直在談論 Ruby 3 的未來,但是一直也沒見發(fā)布,不過今年是真的會在 12 月 25 日圣誕節(jié)推出 Ruby 3。在圣誕節(jié)發(fā)布 Ruby 升級是社區(qū)的一項傳統(tǒng)。
接著松本分享了所有編程語言面臨的困境:升級與不升級的矛盾。在應用運行穩(wěn)定的基礎上,如果大改語言,那么就會帶來艱難升級的危險,Python、PHP 與 ECMAScript 都是很好的例子,它們的社區(qū)花了許多年才能接受這些變化。“使用 Python 3,社區(qū)花了十多年的時間;PHP 6 甚至被取消了,直接從 PHP 5 開始創(chuàng)建 PHP7;EMCAScript 4 也被取消了。”
松本解釋說,如果不做出改變,人們可能會離開社區(qū),而如果升級到更高版本則會帶來太多痛苦,他們也可能會離開社區(qū)。這種進退兩難的情況可能是每個編程語言面臨的困境,不過松本覺得這種時候更應該向前:“因此,正如我所說,設計一種語言很困難,但是無論如何我們都必須向前邁進,以創(chuàng)造未來。”
同時,在這種情況下,保持兼容性是很重要的。松本為 Ruby 3 明確了三個具體的目標:快速、并發(fā)與準確。“使 Ruby 更快,并使 Ruby 程序員更高效”。
為了使 Ruby 更快,開發(fā)團隊將從改進其即時編譯器(JIT)開始;為了實現(xiàn)并發(fā),將避免使用其它語言的解決方案,諸如 ECSMAScript 7 添加了帶有關鍵字 async 和 await 的控制機制。Ruby 3 會改為實現(xiàn)其期待已久的異步 i/o fiber,作為控制異步線程的更好的方法。fiber 之間的上下文切換速度很快,因此性能會更高。
讓 Ruby 更加準確的方法是優(yōu)化早期檢查錯誤,主要靠類型分析器實現(xiàn),它將生成 Ruby 簽名,Ruby 3 將為其核心庫提供類型簽名,可用于類型檢查以及增強將來的 IDE。
松本還介紹了 Ruby 3 將帶來的三個新語法特性。第一個是便捷的模式匹配語法:
第二個新特性允許將值分配給等號右側的變量,“這在某些情況下非常方便。”
第三個新特性是為塊參數(shù)編號:
不過松本也解釋,Ruby 3 語法上不會有太大變化,穩(wěn)定性很重要,他們將專注于改進 Ruby 的現(xiàn)有支持工具,例如用于語言服務器協(xié)議的 Solargraph、用于靜態(tài)類型檢查的 Sorbet,以及 Rubocop 的代碼 linter。
最后松本提及目前他正在考慮的“較小的 Ruby”這一瘋狂的想法,“我正在考慮使用較小的 Ruby 子集,該子集更簡單并且更嚴格,并希望更快或更容易進行優(yōu)化。”這一子集是向下兼容的,也就是說,它可以運行在所有當前版本的 Ruby 中。
責編AJX
-
源代碼
+關注
關注
96文章
2946瀏覽量
66962 -
開源工具
+關注
關注
0文章
27瀏覽量
4523 -
ruby
+關注
關注
0文章
44瀏覽量
3467
發(fā)布評論請先 登錄
相關推薦
夢幻圣誕季,LED 點亮別樣浪漫
![夢幻<b class='flag-5'>圣誕</b>季,LED 點亮別樣浪漫](https://file1.elecfans.com/web3/M00/04/01/wKgZO2duCMqAWHHMAAi3YPvSGiI309.png)
蘋果將于今晚發(fā)布MacBook Pro系列新品
AMD官宣銳龍9000X3D系列發(fā)布計劃
弘景光電:光學科技產(chǎn)品代表企業(yè),創(chuàng)業(yè)板IPO即將上會
![<b class='flag-5'>弘</b>景光電:光學科技產(chǎn)品代表企業(yè),創(chuàng)業(yè)板IPO即將上會](https://file1.elecfans.com/web2/M00/0A/4F/wKgaomcMYuqAJGv0ABjk0Yl3rXs880.png)
2024三星開發(fā)者大會將于10月3日舉行
三星將于今年內(nèi)推出3D HBM芯片封裝服務
銳評Ruby 3.4.0 默認啟用字符串字面量凍結功能
小鵬汽車發(fā)布全新品牌MONA,定位全球AI智駕汽車普及者
Nothing Phone (3)配置亮相:驍龍8s Gen 3芯片,6.7英寸大屏,7月發(fā)布
在界面有改動前點擊生成代碼是可以的,但是加了一個textArea后生成就失敗了的原因?
1節(jié)、2節(jié)、3節(jié)和 4節(jié)串聯(lián)鋰離子電池組管理器BQ40Z50-R2數(shù)據(jù)表
![1<b class='flag-5'>節(jié)</b>、2<b class='flag-5'>節(jié)</b>、<b class='flag-5'>3</b><b class='flag-5'>節(jié)</b>和 4<b class='flag-5'>節(jié)</b>串聯(lián)鋰離子電池組管理器BQ40Z50-R2數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論