JVM基礎(chǔ)之介紹基于JVM的腳本語言
JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫,JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛構(gòu)出來的計(jì)算機(jī),是通過在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來實(shí)現(xiàn)的。
關(guān)于JVM,大家可以看看這篇文章,會(huì)對你有幫助的,《淺談JVM》
下面是一張表格比較了這五大JVM腳本語言:
能運(yùn)行在Java的虛擬機(jī)JVM上的程序意味著有天然的跨平臺(tái)性,現(xiàn)在JVM并不單單只能運(yùn)行Java程序,在JVM上出現(xiàn)了若干使用Java虛擬機(jī)運(yùn)行的腳本程序,比如什么PHP, Python, Ruby等等,這里有一篇文章評論了在JVM上的可以運(yùn)行的排名前五腳本語言。他們分別是:
1、JRuby。
一個(gè)純Java實(shí)現(xiàn)的Ruby解釋器。通過JRuby,你可以在JVM上直接運(yùn)行Ruby程序,調(diào)用Java的類庫。很多Java編寫的Ruby IDE都是使用JRuby來解釋語法的。
2、Fantom 。
Fantom 前身是 (Fan) 是一個(gè)基于 Java 和 .NET 平臺(tái)的編程腳本引擎,用來在運(yùn)行時(shí)產(chǎn)生 JVM 和 .NET 平臺(tái)的字節(jié)碼,該語言是面向?qū)ο蟮?,?Groovy 和 JRuby 有點(diǎn)類似,可通過特定的接口來集成 Java 的類庫。
3、Jython。
Jython由于繼承了Java和Python二者的特性而顯得很獨(dú)特。其是一種完整的語言,而不是一個(gè)Java翻譯器或僅僅是一個(gè)Python編譯器,它是一個(gè)Python語言在Java中的完全實(shí)現(xiàn)。
4、Groovy。
構(gòu)建在強(qiáng)大的Java語言之上 并添加了從Python,Ruby和Smalltalk等語言中學(xué)到的諸多特征,為Java開發(fā)者提供了現(xiàn)代最流行的編程語言特性,而且學(xué)習(xí)成本很低(幾乎為零),在開發(fā)Web,GUI,數(shù)據(jù)庫或控制臺(tái)程序時(shí),通過減少框架性代碼大大提高了開發(fā)者的效率。支持單元測試和模擬(對象),可以簡化測試。無縫集成 所有已經(jīng)存在的Java對象和類庫。直接編譯成Java字節(jié)碼,這樣可以在任何使用Java的地方 使用Groovy。
5、Scala。
一種多范式的編程語言,設(shè)計(jì)意圖是要整合面向?qū)ο缶幊毯秃瘮?shù)式編程的各種特性。Scala編程語言近來抓住了很多開發(fā)者的眼球。它看起來像是一種純粹的面向?qū)ο缶幊陶Z言,而又無縫地結(jié)合了命令式和函數(shù)式的編程風(fēng)格。Scala的名稱表明,它還是一種高度可伸縮的語言。Scala的設(shè)計(jì)始終貫穿著一個(gè)理念:創(chuàng)造一種更好地支持組件的語言。
Jython也有很多從CPython中繼承的模塊庫。最有趣的事情是Jython不像CPython或其他任何高級(jí)語言,它提供了對其實(shí)現(xiàn)語言的一切存取。所以Jython不僅給你提供了Python的庫,同時(shí)也提供了所有的Java類。這使其有一個(gè)巨大的資源庫。
其它一些JVM的腳本語言也我們可以關(guān)注一下,如:Clojure, JavaFX, 和IBM的 NetRexx。
希望通過本文介紹的這幾種基于JVM的腳本語言,能給大家?guī)韼椭?/p>
【編輯推薦】