JRuby语言实战技术
基本信息
编辑推荐
道喜技术日记作者骆古道领衔创作.
国内第一本原创JRuby图书..
内容新鲜,采用最新的JRuby语言版本1.1
所有的代码均出自作者的编程心得...
内容简介回到顶部↑
jruby语言是目前唯一能够运行rails应用软件框架的语言。它包括两个方面:java和ruby,其中,java语言是当今最热门的一种跨平台的面向对象的程序设计语言,ruby 则是一种简单明了、扩展性强和移植性好的面向web应用程序的开发工具。实践证明,java与ruby的结合与推广,已经给应用软件编程带来了革命性的变化。
本书比较详细地介绍了jruby语言基本概念、运行环境的安装、集成开发环境的搭建以及构建系统及其运用;对jruby语言的核心成分:对象、类、模块等进行了较为深入的讨论,并对其关系进行了全方位的解释;同时,针对如何开发jruby语言终端软件、jruby语言桌面软件、以及如何生成自己的jruby语言软件包、如何操控java语言丰富的资源、利用jruby语言的专有框架rails开发网络软件等内容进行了示范性讲解。
本书适合于希望了解和使用jruby语言的广大程序员。
本书比较详细地介绍了jruby语言基本概念、运行环境的安装、集成开发环境的搭建以及构建系统及其运用;对jruby语言的核心成分:对象、类、模块等进行了较为深入的讨论,并对其关系进行了全方位的解释;同时,针对如何开发jruby语言终端软件、jruby语言桌面软件、以及如何生成自己的jruby语言软件包、如何操控java语言丰富的资源、利用jruby语言的专有框架rails开发网络软件等内容进行了示范性讲解。
本书适合于希望了解和使用jruby语言的广大程序员。
作译者回到顶部↑
本书提供作译者介绍
骆古道,网名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语言程序
4.3 基于ruby技术的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语言程序
4.3 基于ruby技术的jruby程序
前言回到顶部↑
什么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语言的虚拟机对程序的性能和速度的提高起了重要的作用。
本书是作者运用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语言的虚拟机对程序的性能和速度的提高起了重要的作用。
序言回到顶部↑
序
从开始接触计算机至今已经有二十多个年头了。.
现在的计算机,无论是硬件还是软件,都已经发生了翻天覆地的变化。但是不管怎样变化,“让计算机服务于人类”的信条并没有改变。如何让计算机听从人的指挥呢?简单而直接的做法就是编写计算机程序。
然而,写程序常常是一件枯燥无味的事情,其中的酸甜苦辣只有自己知道,但所有的烦恼也将随着一行行程序代码的顺利完成而云消雾散,所以我喜欢这个职业,因为它充满了挑战。我驾驭计算机的能力就是在这种不断挑战、不断征服中得到提高的。写程序也就成为了我最大的爱好。
但是,现在情况正在悄悄地发生变化,JRuby语言的出现使得写程序再也不像过去那样地令人生畏,JRuby语言让我们感受到编程实际上是一种艺术的享受。..
这本书几乎是伴随着JRuby语言最重要的发展阶段而写成的。从开始着手准备素材到完稿,时间跨度接近两年。两年来,由于JRuby语言本身的快速更新发展,使我们不得不一次又一次地对本书中的内容进行调整和补充。本书采用了最新的刚刚发布不久的JRuby语言版本。这无疑为本书的创作过程增添了不少困难,尽管如此,在本书中我们还是竭尽全力地通过自己的语言来表达对JRuby语言的概念和软件开发思想的认识和理解。
本书的写作目的是向读者介绍JRuby语言中最基本的概念和最重要的理论,使读者通过JRuby语言能够真正了解软件开发的过程、方法和实质。由于时间和篇幅上的限制,我们无法就Ruby语言软件开发中的测试方法进行详细的介绍。这是一个遗憾,希望能在下一个版本中补充这方面的内容。
我始终认为,计算机科学是一门实践性很强的学科,脱离了计算机实际操作是无法真正成为一名好的程序员的,更不可能成为软件项目经理或软件架构师。在国外,Rails框架已成为越来越多的大学中的一门课程,而这个框架就来自于实际的软件项目。
希望本书能够使你像阅读JRuby语言程序代码时一样愉快。
骆古道
2008年3月27日于慕尼黑..
推荐序
JRuby——超越Java的选择
Ruby on Rails框架的迅速崛起是2005年的事,它同时带动了Ruby语言市场份额的迅速增长,使之在两年之内冲进了TIOBE编程语言流行度排名前10位,甚至超越了同样在2005年因Ajax技术的出现而迅速增长的JavaScript语言。
由于一些原因,我学习Ruby和Rails比较晚。我曾经长期坚持使用Struts+Spring+ Hibernate做Web开发,这套组合被称作SSH,至今仍然是做Java Web开发最流行的框架。但是,Struts、Spring和Hibernate都是很复杂的框架,学习成本很高,而且基于XML的配置文件维护起来非常繁琐,严重影响了开发效率。我使用这套组合开发过一个小项目——一个提供banner广告的服务器,全部开发由我一个人完成。原先预计花1个多月时间完成的项目,最终花了3个多月,这使我对这套组合的开发效率很不满意。2007年上半年我读了一本书《超越Java》,明白了Java开发框架开发效率低下的一些深层原因。问题不完全出在这些开发框架本身的设计上,Java语言本身的设计也有很多问题,正是这些问题导致了开发效率低下。《超越Java》还对Ruby和Rails做了很多介绍,这本书说服了我,我决心以后做Web开发时转Rails。
我喜欢以与别人不同的方式来学习新的技术,那样会得到很多不同的乐趣,对于新技术也会得到一些更加深入的认识。在我开始学习Ruby和Rails时,开源项目JRuby发布了0.98版。JRuby是Ruby语言在JVM上的实现,类似于Python语言在JVM上的实现JPython。毕竟我已经使用了很多年Java,Java做任何事情时几乎都能找到现成的方案。看来对于Java程序员转向Ruby,JRuby是一个很好的工具。万一将来不知道某件事如何用Ruby做,我还可以通过JRuby来调用Java的库。
情况比我想象的要好,当我阅读完《Ruby for Rails中文版》和《应用Rails进行敏捷Web开发(第2版)》后,发现这两本书中绝大多数例子都能够使用JRuby正确运行。JRuby与Ruby标准版的兼容性很好。伴随着我的学习过程,JRuby也迎来了它的1.0正式版。这个项目发展迅速,看起来前程远大。从那时起,我在做Rails开发时一直坚持同时使用JRuby来做测试。
到JRuby 1.1版发布(2008年4月5日)为止,JRuby是除了Ruby标准版以外唯一能够顺利运行Rails应用的环境。在.NET上实现的IronRuby因为其开发团队与微软公司签订过协议,无法借鉴Ruby标准版以GPL许可发布的代码,严重影响了发展速度,至今也无法顺利运行Rails应用。当Ruby标准版自己的虚拟机尚不成熟时,JRuby是运行于虚拟机之上最为成熟的Ruby语言实现。Ruby语言转变为一种虚拟机语言是必然的趋势,这对Ruby语言未来的发展至关重要。在2007年还发生了一件大事,Sun公司终于决定将他们视为核心知识产权的JVM和JDK的源代码以GPL许可公布出来。既然JVM也已经GPL了,而且JVM是在业界使用了10年以上,最为成熟的虚拟机技术。Ruby开发者利用JVM将Ruby语言转变为一种虚拟机语言,是一种非常自然的选择。
Ruby语言和JVM的组合可谓是强强联手,它们的结晶JRuby现在已经成为了一个新的创新源泉。正是基于JRuby的技术,NetBeans的Ruby版才达到了如此高的品质。Eclipse的RDT和DLTK插件同样也使用了JRuby中的技术。在Java语言市场份额连年下滑的情况下,Sun公司为了保持住JVM的市场份额,使自己继续保持领先地位,除了使JVM更好地支持动态类型语言之外别无选择。与Groovy、JavaScript、Python等其他几种能够运行于JVM上的动态类型语言相比,JRuby更大地推动了JVM对于动态类型语言的支持,可以预见,Ruby将会成长为运行于JVM上的第一大动态类型语言。随着JRuby的发展成熟,围绕JRuby的各种应用部署方案、负载均衡方案、集群方案也会逐渐浮出水面,最终形成一个繁荣的生态系统。
从开始接触计算机至今已经有二十多个年头了。.
现在的计算机,无论是硬件还是软件,都已经发生了翻天覆地的变化。但是不管怎样变化,“让计算机服务于人类”的信条并没有改变。如何让计算机听从人的指挥呢?简单而直接的做法就是编写计算机程序。
然而,写程序常常是一件枯燥无味的事情,其中的酸甜苦辣只有自己知道,但所有的烦恼也将随着一行行程序代码的顺利完成而云消雾散,所以我喜欢这个职业,因为它充满了挑战。我驾驭计算机的能力就是在这种不断挑战、不断征服中得到提高的。写程序也就成为了我最大的爱好。
但是,现在情况正在悄悄地发生变化,JRuby语言的出现使得写程序再也不像过去那样地令人生畏,JRuby语言让我们感受到编程实际上是一种艺术的享受。..
这本书几乎是伴随着JRuby语言最重要的发展阶段而写成的。从开始着手准备素材到完稿,时间跨度接近两年。两年来,由于JRuby语言本身的快速更新发展,使我们不得不一次又一次地对本书中的内容进行调整和补充。本书采用了最新的刚刚发布不久的JRuby语言版本。这无疑为本书的创作过程增添了不少困难,尽管如此,在本书中我们还是竭尽全力地通过自己的语言来表达对JRuby语言的概念和软件开发思想的认识和理解。
本书的写作目的是向读者介绍JRuby语言中最基本的概念和最重要的理论,使读者通过JRuby语言能够真正了解软件开发的过程、方法和实质。由于时间和篇幅上的限制,我们无法就Ruby语言软件开发中的测试方法进行详细的介绍。这是一个遗憾,希望能在下一个版本中补充这方面的内容。
我始终认为,计算机科学是一门实践性很强的学科,脱离了计算机实际操作是无法真正成为一名好的程序员的,更不可能成为软件项目经理或软件架构师。在国外,Rails框架已成为越来越多的大学中的一门课程,而这个框架就来自于实际的软件项目。
希望本书能够使你像阅读JRuby语言程序代码时一样愉快。
骆古道
2008年3月27日于慕尼黑..
推荐序
JRuby——超越Java的选择
Ruby on Rails框架的迅速崛起是2005年的事,它同时带动了Ruby语言市场份额的迅速增长,使之在两年之内冲进了TIOBE编程语言流行度排名前10位,甚至超越了同样在2005年因Ajax技术的出现而迅速增长的JavaScript语言。
由于一些原因,我学习Ruby和Rails比较晚。我曾经长期坚持使用Struts+Spring+ Hibernate做Web开发,这套组合被称作SSH,至今仍然是做Java Web开发最流行的框架。但是,Struts、Spring和Hibernate都是很复杂的框架,学习成本很高,而且基于XML的配置文件维护起来非常繁琐,严重影响了开发效率。我使用这套组合开发过一个小项目——一个提供banner广告的服务器,全部开发由我一个人完成。原先预计花1个多月时间完成的项目,最终花了3个多月,这使我对这套组合的开发效率很不满意。2007年上半年我读了一本书《超越Java》,明白了Java开发框架开发效率低下的一些深层原因。问题不完全出在这些开发框架本身的设计上,Java语言本身的设计也有很多问题,正是这些问题导致了开发效率低下。《超越Java》还对Ruby和Rails做了很多介绍,这本书说服了我,我决心以后做Web开发时转Rails。
我喜欢以与别人不同的方式来学习新的技术,那样会得到很多不同的乐趣,对于新技术也会得到一些更加深入的认识。在我开始学习Ruby和Rails时,开源项目JRuby发布了0.98版。JRuby是Ruby语言在JVM上的实现,类似于Python语言在JVM上的实现JPython。毕竟我已经使用了很多年Java,Java做任何事情时几乎都能找到现成的方案。看来对于Java程序员转向Ruby,JRuby是一个很好的工具。万一将来不知道某件事如何用Ruby做,我还可以通过JRuby来调用Java的库。
情况比我想象的要好,当我阅读完《Ruby for Rails中文版》和《应用Rails进行敏捷Web开发(第2版)》后,发现这两本书中绝大多数例子都能够使用JRuby正确运行。JRuby与Ruby标准版的兼容性很好。伴随着我的学习过程,JRuby也迎来了它的1.0正式版。这个项目发展迅速,看起来前程远大。从那时起,我在做Rails开发时一直坚持同时使用JRuby来做测试。
到JRuby 1.1版发布(2008年4月5日)为止,JRuby是除了Ruby标准版以外唯一能够顺利运行Rails应用的环境。在.NET上实现的IronRuby因为其开发团队与微软公司签订过协议,无法借鉴Ruby标准版以GPL许可发布的代码,严重影响了发展速度,至今也无法顺利运行Rails应用。当Ruby标准版自己的虚拟机尚不成熟时,JRuby是运行于虚拟机之上最为成熟的Ruby语言实现。Ruby语言转变为一种虚拟机语言是必然的趋势,这对Ruby语言未来的发展至关重要。在2007年还发生了一件大事,Sun公司终于决定将他们视为核心知识产权的JVM和JDK的源代码以GPL许可公布出来。既然JVM也已经GPL了,而且JVM是在业界使用了10年以上,最为成熟的虚拟机技术。Ruby开发者利用JVM将Ruby语言转变为一种虚拟机语言,是一种非常自然的选择。
Ruby语言和JVM的组合可谓是强强联手,它们的结晶JRuby现在已经成为了一个新的创新源泉。正是基于JRuby的技术,NetBeans的Ruby版才达到了如此高的品质。Eclipse的RDT和DLTK插件同样也使用了JRuby中的技术。在Java语言市场份额连年下滑的情况下,Sun公司为了保持住JVM的市场份额,使自己继续保持领先地位,除了使JVM更好地支持动态类型语言之外别无选择。与Groovy、JavaScript、Python等其他几种能够运行于JVM上的动态类型语言相比,JRuby更大地推动了JVM对于动态类型语言的支持,可以预见,Ruby将会成长为运行于JVM上的第一大动态类型语言。随着JRuby的发展成熟,围绕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.3Ruby语言特性
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.3Ruby语言特性
【插图】
评论交流
共有5人开贴评论 10人参与评论 4人参与打分 查看
评价等级:







发表于:2008-6-10 9:24:00
作为程序开发人员,时刻关注国外新动向早已成为了习惯。如火如荼的ruby on rails框架,更是引起了业内人士的广泛关注——清晰的架构、简洁的开发模式、浓缩的代码开发量……这一切都来得这么突然,又是那么的自然,相比以前javaee混搭框架的繁琐,rails无疑大大解放了生产力,让人不得不惊叹于它的快速、敏捷。
但是,rails毕竟是新生事物,相比之下,由于企业对java平台技术的投入和积累,国内真正使用rails进行产品开发的企业还是非常少,很不幸,我所在的公司也是如此,因为很多遗留系统都是基于java平台的。我是一个对新技术很感兴趣的家伙,就像之前钻研AJAX那样,也花了不少业余时间来学习ruby/rails的相关知识,但不同于前者的是,一直没有机会将学到的东西应用到工作中,导致对其的理解一直停留在理论上,无法在实际中印证。于是,我开始四处寻找java平台上的动态语言,希望能找到一个相似的实现,以便能说服领导,将其先进的思想推广到工作中来,这其中包括jython、groovy等都做了深入的考察。因为之前对python比较熟悉,所以也对jython抱有很大的期望,可惜的是他的开发速度一直停滞不前,直到最近版本号还是2.2,相比C实现的python已经落下很远了,而且它还不能运行python的流行web框架django,于是作罢;后来,也花了不少时间系统学习groovy,因为基于它开发的grails还算活跃,也极大的简化了传统java开发的繁琐,但是grails的view模板、很多恼人的bug,以及groovy非革命性的语法风格总丢不掉java的影子,慢慢的让我对其也失去了兴趣。这时候欣喜的发现jruby发布了它的1.0版,综合各方面(开发速度、实现成熟度)来看,jruby成了目前在JVM上结合ruby技术的最完善的平台——完美的兼容ruby语法,与java平台的无缝集成,社区的活跃程度,无疑是开发、部署rails到java环境的最佳选择。
但是,rails毕竟是新生事物,相比之下,由于企业对java平台技术的投入和积累,国内真正使用rails进行产品开发的企业还是非常少,很不幸,我所在的公司也是如此,因为很多遗留系统都是基于java平台的。我是一个对新技术很感兴趣的家伙,就像之前钻研AJAX那样,也花了不少业余时间来学习ruby/rails的相关知识,但不同于前者的是,一直没有机会将学到的东西应用到工作中,导致对其的理解一直停留在理论上,无法在实际中印证。于是,我开始四处寻找java平台上的动态语言,希望能找到一个相似的实现,以便能说服领导,将其先进的思想推广到工作中来,这其中包括jython、groovy等都做了深入的考察。因为之前对python比较熟悉,所以也对jython抱有很大的期望,可惜的是他的开发速度一直停滞不前,直到最近版本号还是2.2,相比C实现的python已经落下很远了,而且它还不能运行python的流行web框架django,于是作罢;后来,也花了不少时间系统学习groovy,因为基于它开发的grails还算活跃,也极大的简化了传统java开发的繁琐,但是grails的view模板、很多恼人的bug,以及groovy非革命性的语法风格总丢不掉java的影子,慢慢的让我对其也失去了兴趣。这时候欣喜的发现jruby发布了它的1.0版,综合各方面(开发速度、实现成熟度)来看,jruby成了目前在JVM上结合ruby技术的最完善的平台——完美的兼容ruby语法,与java平台的无缝集成,社区的活跃程度,无疑是开发、部署rails到java环境的最佳选择。
评价等级:







发表于:2008-6-10 9:26:00
最近在博文官方blog上得知,由骆古道老师领头编写的《Jruby语言实战技术》即将出版面世,这是国内第一本中文Jruby专著(当然前提是能在图灵那本apress译著之前出版才算^_^),真是振奋人心的消息!于是迫不及待地向编辑索取了试读样章,仔细阅读了一遍,虽然只有短短的两章,但一管窥全豹,作者文笔优美,针对每个相关知识点都进行了细致入微的讲解,并辅以翔实的示例代码帮助加深理解,毕竟是国人所著,阅读下来给人的感受非常顺畅。并且,一直以来,骆老师通过它的个人blog,源源不断地向中文社区贡献了很多优秀的rails相关技术教程,是一位广受尊敬的先行者,他的作品当然也是非常值得期待的。
第三章“JRuby 语言构建系统”,介绍了何谓构建系统,及其在jruby平台中的应用(rake、buildr),深入浅出的讲解了每一条常用的命令,以及常见问题的解决方案;作者通过混合ruby、java程序编译部署的实例来进一步论证了jruby与java虚拟机的无缝集成,其中关于rake的部分帮我弄明白了很多之前不知道的配置、使用细节。
第七章“JRuby 语言终端应用”,利用jruby开发命令行工具的过程来阐述jruby语言的运行机理。通过考察现实中的开源项目lines_of_code,并动手改进增强,循序渐进的引入小型框架并结合流行的java集成开发环境eclipse来实际操作,为读者开辟了一条学习jruby的最佳途径,作者非常注重细节,在动手的过程中,也不忘穿插介绍一些ruby的基础知识,如变量声明、循环、注释等,对正则表达式在ruby中的运用也有详细的讲解。
从目录上看,骆老师这本书涉及的范围很广,包涵了使用jruby进行日常开发的方方面面,个人比较期待最后两章讲解rails在jruby上的应用。正如李琨老师在推荐序中所说,此书既适合具有java知识背景,想快速、全面的了解jruby的程序员扩宽视野,也适合那些熟练掌握ruby,想融入java的程序员学习,不管是作为入门指南还是参考手册,这都是非常棒的一本书。
第三章“JRuby 语言构建系统”,介绍了何谓构建系统,及其在jruby平台中的应用(rake、buildr),深入浅出的讲解了每一条常用的命令,以及常见问题的解决方案;作者通过混合ruby、java程序编译部署的实例来进一步论证了jruby与java虚拟机的无缝集成,其中关于rake的部分帮我弄明白了很多之前不知道的配置、使用细节。
第七章“JRuby 语言终端应用”,利用jruby开发命令行工具的过程来阐述jruby语言的运行机理。通过考察现实中的开源项目lines_of_code,并动手改进增强,循序渐进的引入小型框架并结合流行的java集成开发环境eclipse来实际操作,为读者开辟了一条学习jruby的最佳途径,作者非常注重细节,在动手的过程中,也不忘穿插介绍一些ruby的基础知识,如变量声明、循环、注释等,对正则表达式在ruby中的运用也有详细的讲解。
从目录上看,骆老师这本书涉及的范围很广,包涵了使用jruby进行日常开发的方方面面,个人比较期待最后两章讲解rails在jruby上的应用。正如李琨老师在推荐序中所说,此书既适合具有java知识背景,想快速、全面的了解jruby的程序员扩宽视野,也适合那些熟练掌握ruby,想融入java的程序员学习,不管是作为入门指南还是参考手册,这都是非常棒的一本书。
| 我要写评论 |
| 查看所有评论交流(共5条) |

点击看大图



加载中...