一、JRuby:JVM的第一件動態(tài)語言外衣
 
第一個進入Sun的視線的是Ruby,Ruby是一種功能強大的面向?qū)ο蟮哪_本語言,她可以使您方便快捷地進行面向?qū)ο缶幊?。有時使用像Smalltalk、Eiffel或C++這樣正式的面向?qū)ο笳Z言來開發(fā)一些小項目顯得有點"小題大作",而Ruby剛好可以滿足這些面向?qū)ο缶幊痰男枨?。當然了,您也可以使用Ruby進行普通的面向過程編程。Ruby的文本處理能力極強,與Perl不分伯仲。同時,Ruby的語法簡單,還有異常處理以及迭代器等構(gòu)造,使編程變得更簡單了。

同時,Ruby還擁有一個類似Struts的MVC Web框架Rails,利用Rails可以非??焖俚拈_發(fā)基于MVC模式的Web程序。Sun看到了Ruby和Rails的發(fā)展前景,類此,首先提供了基于JVM的Ruby:JRuby。因此,也可以這么說,JVM + Ruby = JRuby。

Sun不僅提供了JRuby,而且也在自己的NetBeans中提供了很好的Ruby/JRuby支持。

在以前,Sun很少為某種動態(tài)語言提供開發(fā)環(huán)境,而JRuby的特殊待遇可見Sun對JRuby的重視程度非同一般。這也許是Sun在將JVM變成真正的虛擬機(也就是去掉JVM前面的J)的第一步。由于JRuby運行在JVM上,因此,JRuby就理所當然地可以使用JVM及龐大的Java庫了。也許這也正是Sun認為JRuby才是Ruby和Rails發(fā)展的真正王道的原因。

二、Jython:JVM陣營的又一力作

當Sun看到了JRuby/Ruby的成功后,并不甘心在JVM上只支持Ruby一種動態(tài)語言。因此,在支持JRuby后不久,Sun就雇傭了兩位Python社會的開發(fā)人員來為JVM披上一件新的外衣,這就是Jython。

Jython是Python編程語言100%純Java實現(xiàn),它結(jié)合了Python和Java虛擬機和庫的優(yōu)點,成為了Java平臺的有益補充。

最初的Jython又稱為JPython,是一個十足的Java應用程序,它允許使用Python編程語言的語法和大多數(shù)特性。和其它編程語言比較,Jython有如下幾個優(yōu)點:

1. Python解釋器shell的Jython版本可以對某些想法和API作便利的實驗和研究。而不必經(jīng)歷一般的Java編譯運行周期。
2. Python被設計成動態(tài)且通用的,因此你不必通過使用復雜的庫(如用于Java反射和內(nèi)省的庫)來添加這些特性。這使開發(fā)更簡單,而且它在自動測試框架中特別有用。
3. 部署簡捷,提供了及時部署能力,無需花大量時間在打包和編譯周期上。
4. 易于學習和使用,技術門檻低,可以輕松地找到大量的使用者。
 
三、總結(jié)

雖然在JVM上運行的這些動態(tài)語言在性能上可以略遜于原生的動態(tài)語言。但是由于它們可以和JVM無縫連接,因此,這些J…語言天生就具有了和Java語言一樣強大的功能。正所謂抱棵大樹好乘涼??磥硪院骃un還會在JVM中支持更多的動態(tài)語言(也許以后會出現(xiàn)JPHP或是JHP,哈哈)。當然,目前除了Sun官方提供的支持,第三方也有了很多關于其他動態(tài)語言的支持,如原生的Groovy。還有Tcl、BeanShell等??磥硪院驤VM這個詞要消失了,也許我們以后要直接叫JVM為VM了。但愿這一天會早日到來。

分享到

baitao

相關推薦