![]() |
VOOZH | about |
相信有很多學習java的道友,在這裡我給大家說說我啲群哦,java海量知識分享, 就是前面是684中間是290後面是783,在此我保證,絕對是java的乾貨,等各位的到來,我們一同從入門到精通吧!
Java 10終於如期發布了,這是Java開發屆的一件大事。但是作為擁有最龐大企業開發社群和開發人員的一個完整的生態環境,圍繞著Java運行時環境(JRE)和Java虛擬機(JVM),早已不單單是Java語言的一言堂了,而是擠滿了各式各樣的參與者。
本文,就將帶領大家盤點下,運行在Java虛擬機環境下的這些別樣的語言們。我們完全有理由相信,隨著JVM性能的進一步提升,這些語言必將會更加大放光彩。
官方站點:https://kotlinlang.org/
由JetBrains於2010年創建,並於2012年開源, Kotlin比Java更加簡潔和安全。 您完全可以將Kotlin視為是一種「更加簡單但高效的Java」。Kotlin的編譯速度通常比Java代碼快,而且在其創建之初,就非常明確的支持了函數式編程,這一點,Java是到Java 8才開始支持的。
特別的,因為有了Google的加持,越來越多的Android開發人員,開始選擇Kotlin來開發應用程式,與此同時,獨立的超越JVM的行動也已經在展開,通過一項名為LLVM的項目,Kotlin正在努力實現代碼編譯的本地化,而不在基於JVM 。
但無論如何,至少現在,它還活在JVM中。
官方站點:http://www.scala-lang.org/
和Kotlin一樣, Scala也是為了讓Java開發人員提高工作效率而創建的。 作為一種完全的面向對象語言和一種完全的函數式程式語言,Scala巧妙的將這兩種編程範式結合到了一起。
特別是在函數式編程方面,Scala幾乎支持函數式程式語言中所有已知的特性,比如,模式匹配(Pattern matching)、延遲初始化(Lazy initialization)、偏函數(Partial Function)、不變性(Immutability)等等等等,
因此,雖然Scala的類Lisp的語法會讓初學者倍感迷惑,但花時間在這上面,永遠是值得的,很快,就會讓你體會到那種只需要關注 What(做什麼),而不用關注How(如何做)的酸爽。
一個最新的關於Scala的消息是,它似乎也在和Kotlin一樣,在加速準備逃離JVM的控制,這對於JVM,恐怕不是一個什麼特別好的消息,雖然,其距離用於生產可能還為時尚早。
官方站點:https://clojure.org/
Clojure是由開發人員Rich Hickey在JVM下,所創建的一種Lisp方言,藉助於JVM的執行效率越來越高,Clojure也常被嵌入在Java中,用於編寫其中需要高並發、高性能的部分 。
官方站點:http://www.groovy-lang.org/
Groovy是在Java現有基礎上,吸收Python和Ruby等動態語言的特性,而創建的一種新型語言,也是Jenkins持續集成伺服器,所直接支持的語言之一,並且最關鍵的一點,通過基於Groovy的Web開發框架Grails,可以快速的完成相關Web項目的構建 。
在未來,Groovy則擬包含Java和JVM的一些更新的特性,比如如Java 8的lambda語法等。
官方站點:http://www.jython.org/
Jython是JVM的Python實現,與Python的2.x分支兼容,可以動態編譯為Java字節碼,並且可以與其他JVM語言(特別是Java)自由交互操作。
官方站點:http://jruby.org
JRuby幾乎就是Jython的翻版,所不同的是,JRuby所對標的語言是Ruby,當前所支持的語法規範則和Ruby 2.3兼容。
官方站點:https://www.ceylon-lang.org
這個以大象為Logo的語言,其創建初衷可不是像大象一樣笨拙,恰恰相反,語言的創始人 Gavin King,是出於對Java所存在問題的深刻認識,如泛型等特性的複雜性、粗劣的註解語法、不完善的塊結構、對 XML 的依賴性等等,才萌生了創建一種新的靜態類型語言語言,即Ceylon來一勞永逸的解決這些問題的想法。
Ceylon保留了一些好的 Java 語言特性,改進了語言的可讀性和內置的模塊性,還吸收了高階函數等函數語言特性,此外,Ceylon 還融合了 C 和 Smalltalk 的一些特性。與 Java 語言一樣,這種新語言也以業務計算為重點,但是它在其他領域也很靈活、很有用。並且,通過這些年的努力,Ceylon已經跨出了其自身跨平台的第一步,其代碼已經可以在JVM,Dart VM或Node.js上進行編譯或運行。
官方站點:https://eta-lang.org/
我們的名單中怎麼能少了時下最能裝酷,也是被Node.js的創建者稱為覺得暫無能力駕馭的語言Haskell的JVM實現?
它來了,就是Eta,它的優勢,不僅僅在於它可以在JVM下執行,更在於它可以使用Haskell的軟體包倉庫中的軟體包,最大程度的兼容了整個Haskell生態系統。
官方站點:http://haxe.org
Haxe的口號是:One Language,Everywhere!是不是有點熟悉?是的,在非常久遠的過去,這其實正是Java的初心。
但是,這二者又是如此的迥異。Java的策略是,我做一個平台JVM,給出一種規範,你們來生成我需要的代碼;Haxe的策略則正好相反,既然芸芸眾生,語言紛雜,每個人都各有偏好,那好,來吧,我可以把我的代碼,生成任何一種你們想要的語言下的代碼!
多麼瘋狂的想法!就為這點瘋狂,就值得我們每個開發人員去膜拜一番了,畢竟,在Haxe看來,JVM,不過是其可以編譯的一個「小」對象而已。