官术网_书友最值得收藏!

前言

什么JRuby和Ruby

本書是作者運用JRuby語言的實戰經驗之集成。那么,什么是JRuby語言?這里,我們借用Charles Oliver Nutter和Thomas Enebo在RubyConf上做題為“JRuby: Not Just Another Ruby Impl”的演講時,對提問“What is JRuby”所做的回答作為答案:

開始于2002年;

Ruby語言的Java實現;

開放源代碼,有許多積極的參與者和貢獻者;

容易與Java庫和架構進行有機的集成(從Java中通過JSR223、BSF調用Ruby,從Ruby中使用Java類)。

針對上述回答,也許人們會繼續問Ruby又是什么呢?它是一種功能強大的面向對象的腳本語言,它的創始人是日本的松本行弘(まつもとゆきひろ,英譯:Yukihiro Matsumoto,外號Matz)。

JRuby是一個100%的Ruby編程語言的純Java實現,是在Java虛擬機(JVM)上運行的Ruby。JRuby支持從一個Ruby程序中定義Java類并實現與之交互,此外還對Bean腳本化框架實現支持,JRuby允許Ruby程序直接存取Java類,并允許將它們作為程序內使用的一級對象。官方總結的JRuby語言的主要特性有:

用純的Java實現的、與Ruby 1.8.6兼容的Ruby解釋器;

提供了絕大多數Ruby內置的類;

在Ruby環境內可以與Java類交互,也可以自定義Java類;

支持Bean Scripting Framework(BSF);

三種發行方式:CPL/GPL/LGPL。

JRuby語言的發展

從2002年開始至今,JRuby的版本經歷了多次的更新,目前已經發展到了版本1.1RC3。JRuby 1.0主要解決與Ruby的兼容問題,而JRuby 1.1主要解決執行速度的問題。

根據TIOBE Programming Community(www.tiobe.com)對目前流行的計算機程序設計語言的評估排行榜,JRuby語言在2007年11月的排名為第9位,成為排名大幅提升的語言之一。Ruby語言已經進入了主流計算機程序語言的行列。

Ruby語言的Rails框架版本2.0的發布,使得Ruby語言的影響力越來越廣泛而且越來越深入。那么,誰在使用Ruby語言的網絡應用框架呢?調查結果表明,Ruby語言的Rails框架不僅得到了國際性大公司(如Siemens和IBM等)的采用,而且已為許多著名的大流量應用網站所采用,如綜合性社會網站spokeo和人名搜索網站spock。可是在幾年前,Ruby語言還是那么地默默無聞和鮮為人知。Rails框架的成功對Ruby語言成為主流語言起到了重要的推動作用。

同時,Rails框架的成功,也吸引了許多企業和開發人員投入到這個新的Ruby語言的框架開發之中,其結果是新的框架如雨后春筍般地涌現,如網絡軟件框架Waves和Merb,以及桌面軟件框架Swing。

NetBeans 6.0可謂是近年來發展最為迅速的一個工具了,今年它又獲得了軟件業的最高榮譽:Jolt最佳工具獎。NetBeans 6.0是針對JRuby而開發的軟件,更重要的是它還包括了Rails框架軟件的開發工具。

從技術角度分析,要使一門計算機語言真正走向商業化道路,僅有開發工具是不夠的,最重要的是該語言實現的運行環境性能和速度。在這一方面,JRuby語言明顯走在了其他語言的前頭,如在文章“通用Ruby多虛擬機API研究開始啦”中就已經開始探討如何解決在Ruby上同時運行一個以上應用時需要多個解釋器的問題,文章討論的目的是如何避免造成內存的浪費。當然,這僅僅是眾多深入研究的一個實例。跟其他實現不同的是,JRuby是目前唯一能夠在虛擬機上運行的Ruby語言。Ruby語言的虛擬機對程序的性能和速度的提高起了重要的作用。

這里所談及的虛擬機特指程序虛擬機,即程序的虛擬運行環境,或者更確切地說,是在編譯器和運行層面的語言虛擬機。

前面已經提到,一門計算機語言要能夠為企業所采用,其性能和速度是重要的因素。虛擬機就是解決這個問題的重要而實質的方法之一。

當前虛擬機正在從單一語言虛擬機向多語言虛擬機方向發展。例如,Java語言虛擬機已經從Java語言變為多種語言共享的虛擬機。我們知道,JRuby語言可以運行在該虛擬機上。盡管CRuby至今還沒有出現自己的虛擬機,但是Ruby語言虛擬機的商業需求是明顯的。這也是JRuby語言實現的目標之一。

隨著Ruby語言虛擬機的不斷創新,可以肯定JRuby語言及其框架的應用軟件將會更加豐富。在其他Ruby語言虛擬機尚未出現之前,JRuby語言將會借助于Java語言的力量和當前越來越多的多核電腦性能成為一種不可忽視的選擇。

以上跡象都表明,JRuby語言正在成長為一門日趨重要的企業級的動態開發語言。

讀者對象

本書就是實際開發和學習JRuby語言程序的參考指南。它不僅是為希望了解Ruby語言的最重要的思想、概念和開發方法的讀者所撰寫的,也是為希望利用Java語言技術和現有Java語言資料的開發JRuby軟件的程序員所撰寫的。

本書通過大量的概念性代碼和現實世界的JRuby語言程序向讀者展示了JRuby語言的強大魅力,使讀者能夠輕松理解和掌握JRuby語言的基本概念、實際操作方法及軟件開發技巧。書中還大量使用命令行方法來開發程序,目的是讓讀者更好地了解這一門計算機語言的核心和軟件開發的實質過程。

本書力圖使讀者能夠操作書中的每一行命令和執行書中的每一行程序代碼,以達到計算機科學的理論與實踐相結合的目的。本書中每一行命令和每一個程序都由作者精心設計和挑選,它們都是在成功執行以后復制到書中的。希望讀者能夠通過執行本書的命令和程序操作,更加深入地了解和掌握這門語言。

本書結構

本書大體上分為兩大部分:

第一部分,JRuby語言的基本概念、運行環境的安裝、集成開發環境的搭建、構建系統及其運用、對JRuby語言的核心成分——對象、類、模塊等進行了深入討論,并對其關系進行了全方位的解釋。

第二部分,介紹具體軟件的開發過程,具體講解如何開發JRuby語言終端軟件、JRuby語言桌面軟件,如何生成自己的JRuby語言軟件包,如何操控Java語言豐富的資源,以及如何利用JRuby語言的專有框架Rails開發網絡軟件等內容。

如果讀者是JRuby語言的初學者,那么,可以從本書的第一頁開始,跟隨本書的每一行命令和每一個程序進行學習、模仿和練習,您必將有所收獲。

如果讀者已經了解Java語言,但是第一次接觸Ruby語言,那么,最好重點閱讀第一部分的第5章和第6章內容。在那里,您可以充分了解Ruby語言面向對象的獨特設計思想。

如果讀者已經熟悉Ruby語言和Java語言,那么,就可以直接進入第二部分的章節。通過這些JRuby實例和框架程序,您可以充分理解JRuby語言的作用和應用領域。

王德志撰寫第一部分的前兩章,姜偉撰寫第二部分的前兩章,其余部分是由駱古道所撰寫。盡管我們對文稿進行了再三校對和代碼運行,但由于作者的水平有限,書中難免會留有一些錯誤,希望讀者朋友們批評指正。此外。考慮到在本書的創作過程中,JRuby語言本身發生了深刻的變化,并且Ruby語言和JRuby語言的軟件包和插件也在持續不斷地更新,所以建議讀者在學習和使用本書代碼時,最好能夠按照本書所提到的軟件和軟件包版本進行工作。如果您發現任何問題或錯誤,請及時與我們聯系,郵箱是:gudao.luo@gmail.com,我們一定會盡快給您答復。

特別說明:由于本書開本限制,代碼清單中采用“【不空格繼續】”與“【空一格繼續】”表示在實際運行中接下來的一行代碼與本行應為同一行代碼。“【不空格繼續】”連接的前后內容之間沒有空格;“【空一格繼續】”表示需要在所連接的前后內容之間敲一次空格鍵。

本書重要軟件版本說明

Ruby語言和JRuby語言是目前發展比較快的語言,為了使讀者能夠順利地學習和運行書本中的實例,建議大家采用下列系統環境和軟件版本:

Windows 2000/XP中文系統

Ruby 1.8.6

JRuby 1.1

此外,在本書的實例中,也涉及一些其他軟件的版本問題,希望讀者們能夠按提示安裝,否則可能會出現版本號不兼容的問題。

致謝

非常感謝我的博客讀者,是他們給予我莫大的幫助和支持,才得以完成本書的創作。由于本書是第一版,正如程序的版本1.0.0那樣,書雖然出版了,但仍在持續的創作過程中。我相信,通過讀者朋友們的幫助,一定能讓這本書更加完善。

我特別要感謝電子工業出版社的周筠、方舟、楊繡國和楊福川,他們為此書付出了大量辛苦的勞動,沒有他們的努力,本書是不可能這么快與讀者朋友們見面的。

同時感謝在此書正式交稿之前,為本書進行認真校對和閱讀的朋友:趙一飛和易波,他們所提出的修改建議使得本書更加嚴謹。

十分感謝本書的另外兩位作者姜偉和王德志,他們是我多年的朋友,我們志同道合,經常一起討論有關程序設計等方面的問題。本書是我們合作的結晶。

駱古道

2008年3月27日于慕尼黑

主站蜘蛛池模板: 望谟县| 平乐县| 芜湖县| 万宁市| 安图县| 墨竹工卡县| 鄯善县| 大埔县| SHOW| 宜兴市| 博罗县| 兴安县| 古蔺县| 武功县| 民勤县| 探索| 乐亭县| 新乐市| 临潭县| 玉屏| 宣化县| 呼图壁县| 崇文区| 蓬溪县| 东明县| 塘沽区| 元阳县| 赤水市| 东城区| 特克斯县| 德州市| 永年县| 白玉县| 三都| 汶上县| 临洮县| 台前县| 都兰县| 文登市| 蒲城县| 刚察县|