Ruby 3将于圣诞节发布,松本行弘分享编程语言的困境
Ruby 編程語言的創(chuàng)建者和首席設(shè)計(jì)師Yukihiro Matsumoto(松本行弘)近期在某演講中分享了 Ruby 3 的一些情況。
原本 Ruby 3 計(jì)劃在東京奧運(yùn)會前夜發(fā)布,但奧運(yùn)會被推遲到 2021 年,所以一些核心開發(fā)者想知道 Ruby 3 是否也會順理成章地推遲一年發(fā)布。討論后最終還是決定今年發(fā)布,并且現(xiàn)在定于 12 月 25 日。
“我們決定今年發(fā)布 Ruby 3,因?yàn)樽鳛殚_源社區(qū),我們必須前進(jìn)。我們必須繼續(xù)前進(jìn),開源社區(qū)通常不能停止發(fā)展,否則就是等死……”松本表示,過去四五年一直在談?wù)?Ruby 3 的未來,但是一直也沒見發(fā)布,不過今年是真的會在 12 月 25 日圣誕節(jié)推出 Ruby 3。在圣誕節(jié)發(fā)布 Ruby 升級是社區(qū)的一項(xiàng)傳統(tǒng)。
接著松本分享了所有編程語言面臨的困境:升級與不升級的矛盾。在應(yīng)用運(yùn)行穩(wěn)定的基礎(chǔ)上,如果大改語言,那么就會帶來艱難升級的危險(xiǎn),Python、PHP 與 ECMAScript 都是很好的例子,它們的社區(qū)花了許多年才能接受這些變化。“使用 Python 3,社區(qū)花了十多年的時(shí)間;PHP 6 甚至被取消了,直接從 PHP 5 開始創(chuàng)建 PHP7;EMCAScript 4 也被取消了。”
松本解釋說,如果不做出改變,人們可能會離開社區(qū),而如果升級到更高版本則會帶來太多痛苦,他們也可能會離開社區(qū)。這種進(jìn)退兩難的情況可能是每個(gè)編程語言面臨的困境,不過松本覺得這種時(shí)候更應(yīng)該向前:“因此,正如我所說,設(shè)計(jì)一種語言很困難,但是無論如何我們都必須向前邁進(jìn),以創(chuàng)造未來。”
同時(shí),在這種情況下,保持兼容性是很重要的。松本為 Ruby 3 明確了三個(gè)具體的目標(biāo):快速、并發(fā)與準(zhǔn)確。“使 Ruby 更快,并使 Ruby 程序員更高效”。
為了使 Ruby 更快,開發(fā)團(tuán)隊(duì)將從改進(jìn)其即時(shí)編譯器(JIT)開始;為了實(shí)現(xiàn)并發(fā),將避免使用其它語言的解決方案,諸如 ECSMAScript 7 添加了帶有關(guān)鍵字 async 和await 的控制機(jī)制。Ruby 3 會改為實(shí)現(xiàn)其期待已久的異步 i/ofiber,作為控制異步線程的更好的方法。fiber 之間的上下文切換速度很快,因此性能會更高。
讓 Ruby 更加準(zhǔn)確的方法是優(yōu)化早期檢查錯(cuò)誤,主要靠類型分析器實(shí)現(xiàn),它將生成 Ruby 簽名,Ruby 3 將為其核心庫提供類型簽名,可用于類型檢查以及增強(qiáng)將來的 IDE。
松本還介紹了 Ruby 3 將帶來的三個(gè)新語法特性。第一個(gè)是便捷的模式匹配語法:
第二個(gè)新特性允許將值分配給等號右側(cè)的變量,“這在某些情況下非常方便。”
第三個(gè)新特性是為塊參數(shù)編號:
不過松本也解釋,Ruby 3 語法上不會有太大變化,穩(wěn)定性很重要,他們將專注于改進(jìn) Ruby 的現(xiàn)有支持工具,例如用于語言服務(wù)器協(xié)議的 Solargraph、用于靜態(tài)類型檢查的 Sorbet,以及 Rubocop 的代碼 linter。
最后松本提及目前他正在考慮的“較小的 Ruby”這一瘋狂的想法,“我正在考慮使用較小的 Ruby 子集,該子集更簡單并且更嚴(yán)格,并希望更快或更容易進(jìn)行優(yōu)化。”這一子集是向下兼容的,也就是說,它可以運(yùn)行在所有當(dāng)前版本的 Ruby 中。
本文消息與圖片來自thenewstack,具體內(nèi)容可以查看原文與演講視頻。
總結(jié)
以上是生活随笔為你收集整理的Ruby 3将于圣诞节发布,松本行弘分享编程语言的困境的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消息称华为Mate40系列砍单30% 供
- 下一篇: 信用社可以贷款吗