【内容简介】
JRuby语言是目前唯一能够运行Rails应用软件框架的语言。它包括两个方面:Java和Ruby,其中,Java语言是当今最热门的一种跨平台的面向对象的程序设计语言,Ruby 则是一种简单明了、扩展性强和移植性好的面向Web应用程序的开发工具。实践证明,Java与Ruby的结合与推广,已经给应用软件编程带来了革命性的变化。
本书比较详细地介绍了JRuby语言基本概念、运行环境的安装、集成开发环境的搭建以及构建系统及其运用;对JRuby语言的核心成分:对象、类、模块等进行了较为深入的讨论,并对其关系进行了全方位的解释;同时,针对如何开发JRuby语言终端软件、JRuby语言桌面软件、以及如何生成自己的JRuby语言软件包、如何操控Java语言丰富的资源、利用JRuby语言的专有框架Rails开发网络软件等内容进行了示范性讲解。
本书适合于希望了解和使用JRuby语言的广大程序员。
【编辑推荐】
本书的主要特点:
1.内容新鲜,采用最新的JRuby语文版本1.1;
2.既有实战经验的介绍又不乏细致的理论探讨;
3.以浅显易懂的文字和循序渐进的方式详述各个概述;
4.精心设计和挑选的范例配合讲解各种工具的使用;
5.所有的代码均出自作者的编程心得。
【作译者介绍】
本书提供作译者介绍
骆古道,网名Cnruby,八十年代初毕业于西北工业大学数理力学系,1988年公派留学德国,从事组合最优化理论研究,从九十年代初期起一直致力于计算机领域软件开发、设计和管理等方面工具,个人博客为“道喜技术日记”。
.. << 查看详细
【目录信息】
第一部分 JRUBY语言理论及其开发环境
第1章 介绍JRUBY语言
1.1 RUBY语言与JRUBY语言
1.2 为什么要学习JRUBY语言
1.3 利用JAVA语言资源与JRUBY程序
1.4 JRUBY语言与JAVA语言实例分析
第2章 开始JRUBY语言
2.1 JRUBY语言运行环境搭建
2.2 JRUBY语言开发环境:NETBEANS
2.3 JRUBY语言开发环境:ECLIPSE
2.4 JRUBY语言的交互执行环境:JIRB
第3章 JRUBY语言构建系统
3.1 构建系统概述
3.2 构建系统工具:RAKE
3.3 构建系统工具:BUILDR
3.4 利用构建系统工具开发JRUBY程序
第4章 JRUBY语言和JAVA语言实例比较
4.1 基于插件技术的JAVA语言程序
4.2 用JRUBY语言直译JAVA语言程序
<< 查看详细目录
【前言】
什么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 ..
<< 查看前言
【序言】
序
从开始接触计算机至今已经有二十多个年头了。.
现在的计算机,无论是硬件还是软件,都已经发生了翻天覆地的变化。但是不管怎样变化,“让计算机服务于人类”的信条并没有改变。如何让计算机听从人的指挥呢?简单而直接的做法就是编写计算机程序。
然而,写程序常常是一件枯燥无味的事情,其中的酸甜苦辣只有自己知道,但所有的烦恼也将随着一行行程序代码的顺利完成而云消雾散,所以我喜欢这个职业,因为它充满了挑战。我驾驭计算机的能力就是在这种不断挑战、不断征服中得到提高的。写程序也就成为了我最大的爱好。
但是,现在情况正在悄悄地发生变化,JRuby语言的出现使得写程序再也不像..
<< 查看序言
【书摘】
第1章 介绍JRuby语言
Ruby语言是一门很成功的语言,它吸收了众多语言的优点,成为一种简单的面向对象的脚本语言,并被认为是最近十年来对软件行业有着重大影响的软件之一。同时,在过去的十多年里,人们熟知的Java语言也已经成长为业界最有影响力的面向对象语言,该语言不仅有着丰富的资源,而且可以运行在不同的平台之上。于是,如何将Java语言的丰富资源与Ruby语言的简明特性结合起来,充分发挥两者的优势,成为人们最为关注的问题。本书的目的就是向您展示这种结合的硕果——JRuby语言。
在本章中,我们首先向你介绍Ruby语言和JRuby语言的概念和基本使用方法。然后,我们简要地说明为什么要学习JRuby以及使用JRuby的好处。而在本章的最后,我们将通过几个实例来说明JRuby的优势。
Ruby语言和JRuby语言是贯穿本书的两个最基本的概念,为了便于描述,在书中我们约定:凡是“Ruby语言”(或“Ruby”),就是指Ruby语言技术规范,或者说符合Ruby语言技术规范的、以C语言实现的运行环境。凡是“JRuby语言”(或“JRuby”),就是指符合Ruby语言技术规范的、以Java语言实现的运行环境。
1.1 Ruby语言与JRuby语言
在本节中,首先介绍Ruby语言的概念及其历史和理念,然后介绍Ruby语言与JRuby语言的相互关系。
一般来讲,对“Ruby语言”概念的理解可以有“广义”和“狭义”两种,所谓“广义”理解就是指它是一门计算机语言的技术规范;“狭义”理解则是指这门语言的一个具体实现。
1.1.1 什么是Ruby语言
Ruby语言是一种面向对象的、动态的解释性语言,它是由日本人松本行弘(まっもとゅきひぅ,英译:Yukihiro Matsumoto,外号Matz)开发完成的。长期以来,松本行弘一直想发明一种语言,该语言不仅能够使软件开发人员进行高效的开发工作而且又能享受到编程的快乐。于是从1993年2月24日开始,他正式启动了Ruby语言的研发工作,1995年12月正式公开发布了Ruby的第一个版本:Ruby 0.95。该语言的发行遵守GPL协议和Ruby License。
Ruby语言是一门特高级语言(Very High—Level Language,VHLL)。它可以通过编写较少的指令来控制复杂的数据结构并对其进行灵活的操作,符合程序设计“最少投入原则”(Principle of Least Effort)。
Ruby语言是一门脚本语言。它可以使传统的、烦琐的脚本操作变得更容易编程,比如运行外部程序、检查系统资源、使用管道(pipe)、截获子进程状态和截获程序输出信息等。
Ruby语言是一门动态语言。这意味着方法和变量可以在程序的运行过程中进行添加和重定义,不仅减少了像C语言那样的条件编译(#ifdef),而且容易实现反射技术(reflection)。
Ruby语言是一门解释型语言。其最为显著的特点就是快速的开发周期(rapid developme cycle)。比如Ruby on Rails就是一个很好的实例,它前所未有地加速和简化了网站的构建。可以预料,随着计算机硬件设备性能的持续提高,Ruby语言的性能将会得到更大的提高。
关于Ruby语言的名字来历,有这样一种说法:因为Perl的发音与6月的诞生石pearl(珍珠)相同,因此,Matz就以7月的诞生石ruby(红宝石)为该语言命名。
目前,Ruby语言的稳定版本是1.8.6(2007年3月12日发布)。这个版本也是当前应用得最为广泛的一个版本,它是用C语言实现的。
1.1.2 开发Ruby语言的理念
早期的许多程序设计语言,由于受到机器性能的约束,所以其设计必须是以机器为主,关注机器的执行性能。随着计算机技术尤其是硬件技术的持续快速发展,机器性能得到了很大的提高,人们的设计思维也从“关注机器性能”逐步转向如何适应人的角度来考虑问题,换句话说,要求体现出人本主义的思想。
由于Matz研发的Ruby语言十分强调系统设计的人性化,“一直想发明一种语言,使你既能进行高效开发又能享受编程的快乐”,所以,该语言引人瞩目,一经推出,便很快地吸引了一大批的拥护者。在Matz看来,好的编程语言一定要能减少编程人员的工作量,节省时间,消除浪费,同时又能使编写程序的工作成为一件令人愉快的事情。
事实上,也正是因为Ruby语言遵循了上述的设计理念,所以才非常直观,并且按照人们的习惯思维方式运行。
1.1.3 Ruby语言特性
Matz是这样形容Ruby的:Ruby>(Smalltalk+Perl)/2。其含义就是:Ruby语言在语法上像Smalltalk,是完全面向对象的脚本执行语言,在功能上又具有类似于Pefl的强大的文字处理功能。Ruby语言的这种编程特点,使得人们可以方便、快捷地进行面向对象的编程,不仅简单明了,而且扩展性强,移植性好。
Ruby语言的主要特色:
1.语法简单
(1)传递一切可以传递的代码。代码块(Blocks,如“...”和“do...end”)技术可以被引用。第8章将通过实例详细说明有关内容;
(2)动态一切可以动态的代码。开发人员不必在编译前就定义数组大小,也不必预先为数组分配内存空间,更不必时刻警惕其长度。如使用整数时不用考虑它内在的形式,因为Ruby语言会根据数值的大小自动选定使用Fixnum类还是Bignum类。后面将会给出实例;
(3)迭代一切可以迭代的代码。迭代器(iterator)功能强大,像“把代码块传递到对象中”这种操作可以轻易完成,如对于数组、列表(list)、树(tree)等数据结构中的每一个元素都能够调用指定的代码块;
(4)忽略一切可以忽略的代码和符号。比如在函数调用中可以忽略括号;参数之间可以忽略逗号;函数返回的关键字“return”也可以忽略;如果仅仅只有一行代码,则连语句尾的分号也可以忽略;
……
【插图】