Scala開發團隊對外宣布,他們不發布Scala 2.14要直上Scala 3.0的決定,而原先要在2.14顯示的搬遷警示,現在則會提前到2.13版本實施。開發團隊會把開發重點擺在Scala 3,但是仍然會繼續維護Scala 2.13,以幫助社群有足夠的時間過渡到Scala 3。

開發團隊解釋,過去他們一直覺得需要發布2.14版本才能順利過渡到3.0,但是經過研究之後,他們現在認為不需要2.14,而且這樣還能讓Scala 3更快地進入生產階段,也不需要為Scala 2.14重新建置函式庫和工具,因此可釋放更多的人力開發Scala 3。要讓Scala 2能平順地搬遷到3,2.13和3.0必須使用相同的標準函式庫,而且編譯器後端需要能發送相同的位元組碼。

共用標準函式庫可以消除Scala 2.13和3之間的主要差異,能夠幫助程式碼搬遷,不過,這代表標準函式庫二進位不相容性變更將會要到Scala 3.x版本,才會有修復的工具出現,官方解釋,這是因為Scala 2.13系列版本為向前與向後二進位相容,因此不能增加或是移除任何類別與方法。官方提到,在Scala 2到3搬遷過程,當他們發現需要在這些限制之外發展標準函式庫,則還是會發布Scala 2.14。

另外,透過共享ABI(Application Binary Interface),Scala 3.0和2.13的構件可以共存於類別路徑上,並且無縫地通用,而這樣將能讓開發者進行逐步搬遷,並且簡化測試。官方表示,Scala 3現在已經向後相容,除了有定義巨集的函式庫之外,在Scala 3可以直接使用Scala 2.13建置的函式庫。

而為了要提供向前相容性,Scala 3編譯器將確保通用語言子集將包含公共介面,讓Scala 2.13可以使用,這代表函式庫作者可以將函式庫升級到Scala 3,而且不用要求使用者也跟著升級。

由於將專案從Python 2升級到Python 3是不少開發者心中的痛,官方特別強調,從Scala 2升級到Scala 3不會發生跟Python相同的情況,官方表示,由於Scala的靜態類型系統,和他們所進行的相容性工作,可以保證讓開發者更快地從Scala 2過渡到Scala 3。

除了增加2.13和3.0兩版本的互通性之外,官方還將投資時間開發測試與改善工具,幫助開發者能夠順利的搬遷應用程式,並且可能會將部分Scala 3的功能移植到2.13上。

熱門新聞

Advertisement