JAVA平臺是最偉大的發明!

javagens發表於2010-04-22

IT業世界越來越美好了,JVM語言越來越豐富了,JVM已經成為成熟的完善的平臺!

JVM原生語言是Java語言,後來誕生了幾個優秀的的動態語言和靜態語言,JRuby, Jython和Clojure到靜態型Scala語言。

JVM系統如下:

工具庫 | 程式語言

----------------------------------

|編譯為位元組碼|

-----------------------------------

JVM

-----------------------------------

OS層(Linux/Unix/Windows/Apple/BSD)

-----------------------------------

硬體層(智慧卡/小型裝置/PDA/電視/PC機/伺服器..等)

Java language只是JVM的一種語言,並不代表整個Java領域;Java技術已經無出不在了,JVM解決了最主要的部分,就是跨平臺和統一的開發和執行平臺,這是有史以來IT業最偉大的壯舉!JVM的誕生真正的解放了程式設計師;所以作為一個合格的Java領域的開發人員應該掌握各種 JVM 語言,用以解決各種不同的問題。

JVM作為一種機制用以提供Java應用在多個不同硬體上的可移植性,而現在它可以執行的語言更多了,從動態語言如JRuby, Jython和Clojure到靜態型Scala語言。因此,JVM正在成為一個多元化的平臺,開發人員可以充分利用不同語言來滿足各自不同的需要。

為什麼JVM變得如此有吸引力呢?Sun Microsystems公司Web技術總監認為,這是因為JVM這個Java平臺的效能以及它對其他語言的支援。例如,JVM尤其是HotSpot,具有尤其突出的效能。第二個原因是JVM有巨大的Java庫。學習一種新語言最難的問題之一就是要彙集所有必要的庫並使之可用,而在JVM上,你可以免費得到這一切。因此,許多企業也不會部署任何不適合Java生態系統的東西。

Java平臺比Java語言更加重要。Sun公司的Bray強調Java平臺已越來越比Java語言本身重要。他說,我個人認為, 長遠來看Java平臺比Java語言有更多的戰略重要性。

對我們而言JVM已經完全成為偉大的產品,因為它在每一個新一代的JVM中都切實地改善了效能,這種效能提升穩定且有必要。 Scala語言的開發者Martin Odersky說。與此同時他指出,在一個公司的基礎架構中Scala可以取代Java,比如Sony Pictures。

不過,儘管其他語言在JVM上的使用越來越多,但Java還沒有成為JVM中過時的語言。 Bray說,Java仍然是世界上最流行的程式語言,並將繼續是企業和未來系統程式設計的核心語言。

如果這樣的事情(指Java不再是企業和系統程式設計的核心)會發生,那也將是在非常非常遙遠的將來。 Odersky說。他指出,Java背後的種種龐大因素使得大多數公司都不願意改變它。儘管如此,類如Scala和其他一些語言將獲得JVM上更多的語言共享,而JVM平臺也將變得比現在更加多語言化。 Odersky說道。

JVM將變得更加多語言化的一個原因是Sun的Da Vinci Machine專案,該專案承諾將簡化動態語言在JVM上的執行。Bray說,Da Vinci Machine解決[Java Specification Request] 292 ,目的是方便動態語言開發者能在JVM上獲得很好的效能,無疑這將增加動態語言社群對JVM平臺的吸引力。這項工作值得密切關注。

Clojure的作者Rich Hickey認為,動態語言有利於解決在開始時並不確定答案的問題,如建立Web應用程式,尤其是因為沒有一個正確的方式去建立一個Web應用程式;相比之下, Java更適合解決知道答案的問題,當然底層的基礎架構尤其適合Java。

同樣的,其他語言也給JVM帶來了更好的功能。JRuby和Jython的支持者認為他們的語言並非Java的競爭語言而是對Java的補充。一個Jython專案的leader Frank Wierzbicki說,Jython更多的是對JVM上Java語言的補充,它因為將Ruby帶入JVM中而進一步提升了這個Java平臺。

JRuby。JRuby可以說一直是JVM上的最引人注目的動態語言。它可以追溯到2001年,是Ruby語言的一個直譯器。JVM上實現Ruby有兩個非常重要原因。首先,它使Java開發者接觸到一個更高層次的程式語言, JRuby 的核心開發者Bini說,第二,Ruby有許多有趣的庫,比如Rails和RSpec,可用於JVM上 。用於JVM上也意味著當你使用Ruby時,你仍然可以使用所有現有的Java庫。JRuby可以像使用Ruby類一樣來使用任何Java類。這意味著你綜合了Ruby語言生態系統以及Java環境的功能。他說。

Jython。與此同時, Jython所有的方式都回到1998年7月,那時它還被稱為JPython。Wierzbicki表示,有大量的Java在那裡,Jython提供了一種從高效的Python語言訪問程式碼的方式。例如,Jython一直被測試框架使用作為一個嵌入式的指令碼工具。我已經在許多的Python會議如PyCon、EuroPycon以及EuroDjangoCon上說過,而且我也切實地發現許多Python社群的開發者希望能夠在JVM上使用Python。他補充說。

Clojure 。JVM上仍是Clojure (發音為closure ),它用來支援JVM上的功能型以及更好的並行程式設計。Hickey稱,這將推動多執行緒應用程式的開發。任何Java有用的地方Clojure都有用。因此它使用Java庫和語法支援Java呼叫。

Scala。首次亮相於2004年,用以提升Java。雖然Java平臺提供了諸如類安全性和垃圾處理等功能,但這些仍然不夠。他說,我們希望讓Java更具表達性,因此人們的開發效率將更高。Scala不同於JVM相容的其他語言,如JRuby、Jython Clojure ,它部署了一個完善的靜態型系統,並提供更多的程式設計功能。

Groovy 。JVM上的另外一個語言。被稱為JVM的敏捷動態語言Groovy構建在Java的優勢上,並從Ruby和SmallTalk等語言吸取靈感新增了很多功能。有了Groovy,這肯定更容易程式設計,與Groovy比Java說,SpringSource的首席軟體工程師Jon Travis說,他負責監督Groovy語言的開發。世界各地的Groovy開發者為熟悉Java的朋友們增加了很多令人印象深刻的功能。他說。

相關文章