那些JVM 上試圖取代Java 的語言們
Java 的保守陳舊與新特性的缺乏正在使越來越多的人轉而尋找其他方案。既想使用更現代的語法,又割舍不下成熟的JVM 和 社區積累的人們,開始在JVM 創造一個個新的語言。Clojure 和 Groovy, Jython 這樣的函數式或者動態語言,雖然也在某些領域吸引了不少用戶,但是更多人想要的是這樣一種靜態強類型語言:
- 支持lambda表達式、First-class functions、高階函數等函數式編程的支持
- 類型推導
- 運算符重載
- 對null 值運算更好的支持
- collection/object literal
- data Properties ,取代繁瑣的getter/setter
- 增強的switch,match expressoin
- Named arguments tuple
- 語法簡潔
</ul>
scala 其實并不是一種新語言,他已經有10年以上的歷史。Scala 的初衷是結合函數式編程,然而近年來對Java Community Process 感到絕望,渴望一個better java 的程序員們將它作為了一個替代品。Scala 本身也存在這類型系統過于復雜,語法魔幻,喜歡奇技淫巧,學習難度高,編譯速度慢的問題,這阻礙了scala 的進一步發展流行。
Ceylon 是 Red Hat 下SpringSource 的作品,領導者是大名鼎鼎的Gavin King。他有感于Java發展遲緩,Scala 過于復雜,而開始了Ceylon 這個項目。這幾個語言中Ceylon 的語法是最為規整和良設計的,但是其出現較晚,也不如scala 和 Xtend 成熟和流行。
Xtend 是Eclipse 基金會下開發的一種語言,也是這幾種語言中語法跟Java 最像的。Xtend 的源代碼會被先翻譯成Java 源代碼,然后再進行編譯。值得一提的是Xtend 為Android 開發提供了一個slim 的運行庫,只有200多k, 而scala 的lib 已經有10多M 了。
Kotlin 是Jetbrains 推出的一種語言,也是有感于Scala 過多的函數式特性和復雜度而另起爐灶。Kotlin 有著更接近于scala 的語法,其目標是實現一個不復雜的scala.
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!