- JRuby語言實戰(zhàn)技術(shù)
- (德)駱古道 王德志 姜偉
- 2009字
- 2018-12-29 19:21:20
1.3 利用Java語言資源與JRuby程序
無疑,Java語言是當(dāng)前最流行的一門計算機語言,也是在企業(yè)中應(yīng)用最廣泛的一門軟件開發(fā)語言。在Java語言發(fā)展的十幾年中,不僅涌現(xiàn)出大量優(yōu)秀的Java語言軟件和軟件庫,而且還有很多Java語言虛擬機的不同實現(xiàn),這為企業(yè)應(yīng)用軟件的開發(fā)打下了堅實的基礎(chǔ)。Java語言軟件和軟件庫幾乎涵蓋了所有領(lǐng)域:從軟件應(yīng)用服務(wù)器到數(shù)據(jù)庫系統(tǒng),從重要的桌面系統(tǒng)庫到大量實用應(yīng)用庫。所有這一切都為JRuby語言程序的開發(fā)提供了極大的便利條件和豐富的軟件資源。
JRuby語言不僅能夠充分地利用Java語言軟件資源,而且借助于Java語言虛擬機的性能提升和優(yōu)化,還能夠大大提升JRuby語言的性能。因此,JRuby軟件的運行速度、軟件的平臺獨立性和軟件的優(yōu)化分析等方面都具有了很好的特性,這些特性為企業(yè)軟件的成功開發(fā)奠定了良好的基礎(chǔ)。
1.3.1 Java語言的服務(wù)器軟件
在Java語言中不僅有大量的Web容器,如Tomcat和Jetty等,而且還有很多優(yōu)秀的開源和商業(yè)軟件應(yīng)用服務(wù)器產(chǎn)品,如Apache Geronimo,WebSphere和GlassFish。因為Java和JRuby的緊密耦合關(guān)系,在JRuby語言運行環(huán)境下,也可以開發(fā)基于Rails框架的網(wǎng)絡(luò)應(yīng)用軟件。在Ruby語言中,Rails框架是最流行的網(wǎng)絡(luò)軟件開發(fā)框架。我們可以把Rails框架應(yīng)用軟件部署到這些應(yīng)用服務(wù)器上,使得JRuby語言程序獲得更大的活動范圍,以便更好地融合到企業(yè)的軟件運行環(huán)境中去。
1.3.2 Java語言的桌面軟件庫
盡管Java的桌面軟件發(fā)展了很多年,且也有很好的桌面軟件庫,如Swing和SWT,但是使用它們開發(fā)一個桌面軟件仍然相當(dāng)復(fù)雜。我們能否把JRuby語言和Swing或者SWT相結(jié)合,開發(fā)出一個跨平臺的JRuby語言桌面應(yīng)用軟件框架呢?答案是肯定的,現(xiàn)在這種框架正在不斷出現(xiàn),如著名的高質(zhì)量開源網(wǎng)站Codehaus就公布了一個使用JRuby和Swing系統(tǒng)的項目Swiby。在本書的第8章將會詳細(xì)介紹相關(guān)的開發(fā)技術(shù)。
1.3.3 Java語言虛擬機
Java語言的虛擬機是JRuby語言最重要的優(yōu)勢之一,也是Java語言的核心。JRuby語言依附于功能強大的Java語言的虛擬機,這使得JRuby語言本身的良好特性得到了進一步地發(fā)揮。Ruby語言本身是一門解釋性語言,其代碼在執(zhí)行之前需要翻譯成機器碼,這需要時間。而JRuby語言可以非常容易地把程序變成字符碼代碼,直接在虛擬機上運行。這樣就把JRuby語言開發(fā)過程的簡易性和程序運行過程的優(yōu)化有機地結(jié)合在一起了。Java語言的虛擬機使得程序得到優(yōu)化的運行結(jié)果。這樣一來,JRuby語言就不僅僅是簡單的動態(tài)解釋性語言,也是一門編譯性語言。更詳細(xì)的介紹將會在本書的第10章進行闡述。
尤其在今天,隨著多核處理器在桌面電腦中的應(yīng)用逐漸增多,如何在程序中充分發(fā)揮多核處理器的作用,同時充分利用Java語言的虛擬機線程特點已經(jīng)成為一個重要的課題。事實上軟件開發(fā)已經(jīng)滯后于硬件的發(fā)展,所以對于我們來說,這是一次極好的軟件發(fā)展機遇。
1.3.4 Java語言數(shù)據(jù)庫
數(shù)據(jù)庫系統(tǒng)是應(yīng)用軟件最重要的組成部分之一。JRuby語言程序能夠與基于Java語言的數(shù)據(jù)庫更為緊密地結(jié)合,如H2數(shù)據(jù)庫系統(tǒng)(性能相當(dāng)出色,功能相當(dāng)強勁的Java數(shù)據(jù)庫系統(tǒng)),在嵌入式數(shù)據(jù)庫方面表現(xiàn)尤其突出。今天移動設(shè)備的發(fā)展日新月異,嵌入式數(shù)據(jù)庫系統(tǒng)將會受到越來越多的重視和應(yīng)用。在移動設(shè)備中,集成嵌入式數(shù)據(jù)庫的JRuby語言程序也將會得到充分地發(fā)揮。
在Google智能化手機操作系統(tǒng)Android上就可以采用這種嵌入式數(shù)據(jù)庫來開發(fā)JRuby語言的應(yīng)用程序,開發(fā)這種程序的商業(yè)前景是顯而易見的。
1.3.5 Java語言應(yīng)用軟件庫
在利用Java語言豐富的軟件庫方面,JRuby語言正變得越來越得心應(yīng)手。例如,Java語言中著名的搜索軟件項目Lucene也能夠有機集成到JRuby項目中,且使用起來簡單方便,代碼也很簡潔。事實上,我們能夠把所有的Java語言軟件包拿來為JRuby服務(wù)。在本書的第9章中,將會通過實例來解釋實際的開發(fā)方法。
盡管豐富的Java資源對JRuby語言十分重要,但是JRuby語言本身的優(yōu)雅特性才是保持其贏得人們喜歡的最重要因素。雖然創(chuàng)造一門計算機語言并不是一件很困難的事情,但是要讓一門計算機語言博得相當(dāng)多的軟件工程師喜歡就非常困難。Ruby語言從創(chuàng)造時就堅持這樣的一個理念:這門計算機語言是為軟件工程師創(chuàng)造的,而不僅僅是為計算機量身定制的。
在結(jié)束這一節(jié)之前,引用兩位軟件工程師的話。Ola Bini先生的話告訴我們,為什么需要JRuby,而Michael Galpin先生則表明了,為什么太陽公司對JRuby語言有濃厚的興趣。
I believe that JRuby is important because it can run in the same environment as Java, but without the problems of Java.
——Ola Bini, JRuby項目核心人員
翻譯過來是:我相信,JRuby是重要的,這是因為它能夠運行于Java語言的相同環(huán)境,而沒有Java語言本身的問題。
Sun knows what it takes to introduce a new language and platform and make it the de facto standard in the industry. It is very hard and expensive. They have done it once, and it cost them dearly. Java cannot stay at the top forever. They do not want to fight this battle again. However, if they can get the Rails on JRuby scenario described above to exist, then they could “stay on top” without having the fight all of the battles this time. They let the Rails community do it for them.
——Michael Galpin, 軟件工程師
翻譯過來是:太陽公司知道,引入一個新語言和平臺,以及使其成為業(yè)界事實上的標(biāo)準(zhǔn)意味著什么。那非常困難且非常昂貴。他們已經(jīng)漂亮地這樣實施過一次(指引入Java語言),并且耗費了他們大量資金。但是,Java不可能永遠(yuǎn)處于頂點。他們也不想再進行一場類似的戰(zhàn)爭。如果他們能夠讓Rails框架在JRuby語言上繼續(xù)生存下去,那么這次他們就無需再進行任何的作戰(zhàn)即可“處于頂點”了。他們讓Rails社區(qū)為他們做到了這一點。
- 大數(shù)據(jù)技術(shù)與應(yīng)用基礎(chǔ)
- ArchiCAD 19:The Definitive Guide
- 網(wǎng)頁編程技術(shù)
- 條碼技術(shù)及應(yīng)用
- 小型電動機實用設(shè)計手冊
- JBoss ESB Beginner’s Guide
- OpenStack Cloud Computing Cookbook(Second Edition)
- Maya極速引擎:材質(zhì)篇
- Windows環(huán)境下32位匯編語言程序設(shè)計
- 聊天機器人:入門、進階與實戰(zhàn)
- The Python Workshop
- Unity Multiplayer Games
- 智能鼠原理與制作(進階篇)
- Linux Shell Scripting Cookbook(Third Edition)
- Cloudera Hadoop大數(shù)據(jù)平臺實戰(zhàn)指南