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

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

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

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

二、Jython:JVM陣營(yíng)的又一力作

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

Jython是Python編程語(yǔ)言100%純Java實(shí)現(xiàn),它結(jié)合了Python和Java虛擬機(jī)和庫(kù)的優(yōu)點(diǎn),成為了Java平臺(tái)的有益補(bǔ)充。

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

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

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

分享到

baitao

相關(guān)推薦