標籤:

如何評價 scala native?

http://www.scala-native.org/


Scala 以前可以編譯到.net,後來放棄了,主攻JVM。

Scala 現在可以編譯到JVM 和 JS,如果可以直接編譯到native確實完善了產品線,可喜可賀。

以前我計劃等過兩、三年等Rust 庫以及社區成熟後再花時間深入學習,如果Scala可以直接編譯到native,挑戰bare-metal,那麼Rust的用戶會被吸收走一部分,因為不用同時掌握兩門語言,畢竟人的精力是有限的。


應該會是兩個分支,jvm的和native的並存,我很期待這一天


在HN上面看到作者的回復。這個項目暫時是一個人開發並負責的。所以很多人在猶豫,會不會他博士畢業了,然後走人了,留下個爛攤子。不得不說這是有可能的。但是也存在很大的可能性是這個項目會發展壯大起來。

例如Scala.js初期就是一個人開發的,但是後期形成了比較好的社區,貢獻人數也就上來了。

再比如scala meta,作者博士畢業之後去了twitter,但是依舊做的scala相關開發,並且表示依舊會大力開發scala meta。

另外,大家都在問,庫怎麼辦,jvm上跑的庫還能繼續使用嗎?例如joda,作者的回復應該是不能用了,需要將庫port到scala版本,這有點不好。

至於Scala native的將來會怎麼樣,我感覺需要關注。1,它是否真正的解決了某些真正的痛點,例如Scala.js在一定程度上方便了工程師使用自己最熟悉的強大語言來些前端,這很好。2,看作者和Scala社區以及EPFL的看重程度,宣傳力度。3,是否能夠很好的解決庫的問題。


更快的編譯速度, 是好事

更快的啟動和運行速度, 也是好事

C語言調用, 無所謂

但是, 脫離JVM? 真的接受不了, 那不是意味著Java系那麼龐大的依賴支持都沒有了?


不是很看好,畢竟openjdk9都自帶aot編譯器了,可以先編譯到位元組碼再用jaotc來編譯一次


native語言,要是編譯器不能做到coding from ground up,那就是耍流氓。


脫離JVM? 真的接受不了, 那不是意味著Java系那麼龐大的依賴支持都沒有了?


引自 http://colobu.com/2016/04/22/scala-native-is-coming/

洛桑聯邦理工學院(EPFL)發布了一個新的網站Scala Native,他們宣布了一個新的項目 Scala Native,但是沒有公布具體的內容,只有"coming soon"的提示, 但是網站上唯一的提示 "Your favourite language gets closer to bare metal." 隱約透漏它可能是可以使用Scala編程語言編譯成本機代碼的項目。

Scala除了縱向發展外(Scala本身語言的擴展), 也在橫向的發展, 比如Scala.js將Scala語言引入到Javascript中,它可以將Scala語言編譯成javascript。因此有理由相信,這個即將發布的項目可以將Scala代碼編譯成本機代碼,這樣就可以脫離虛擬機直接運行了。

這個項目會在接下來的幾個月發布,但是在即將舉行的紐約 Scala Days會議上, Denys Shabalin會介紹一個主題 "Scala Goes Native", 內容為:

Scala has historically been a JVM-centric programming language. The situation has started to change with appearance of the Scala.js that opened a door of front-end development to Scala programmers. This talk will expand the horizons of Scala even more. We』re going to announce a new ahead-of-time compiler and lightweight managed runtime designed specifically for Scala.

可以看到Scala native會提供一個編譯器和一個輕量級的受管的運行時,看起來類似Golang,編譯的程序會自帶這個輕量級的運行時,負責垃圾回收。詳細的內容在5月11號就可以知道了,估計到時Scala native網站也會進行更新。

如果這一切成真,這將會給Scala帶來非同一般的功能,本地代碼意味著我們不必依賴JVM,可以很容易地發布到docker中,更快更小,將會吸引更多的程序員的眼球。

但是,也有一些值得觀察的因素, 如果脫離JVM,是否還能使用Java的豐富的類庫,還是自己提供一個?編譯的性能如何?JVM的垃圾回收器歷經多年,進行了非常非常仔細的優化,如果Scala native自帶運行時的化,能否做好垃圾回收功能?


如果要native為何不直接用Lisp


推薦閱讀:

有哪些值得推薦的 Scala/Spark 編程 IDE?
Scala中何時應當使用Var變數?
scala中web開發框架,哪一個能最後一統scala天下?lift or play

TAG:Scala |