1.3 利用Java语言资源与JRuby程序
无疑,Java语言是当前最流行的一门计算机语言,也是在企业中应用最广泛的一门软件开发语言。在Java语言发展的十几年中,不仅涌现出大量优秀的Java语言软件和软件库,而且还有很多Java语言虚拟机的不同实现,这为企业应用软件的开发打下了坚实的基础。Java语言软件和软件库几乎涵盖了所有领域:从软件应用服务器到数据库系统,从重要的桌面系统库到大量实用应用库。所有这一切都为JRuby语言程序的开发提供了极大的便利条件和丰富的软件资源。
JRuby语言不仅能够充分地利用Java语言软件资源,而且借助于Java语言虚拟机的性能提升和优化,还能够大大提升JRuby语言的性能。因此,JRuby软件的运行速度、软件的平台独立性和软件的优化分析等方面都具有了很好的特性,这些特性为企业软件的成功开发奠定了良好的基础。
1.3.1 Java语言的服务器软件
在Java语言中不仅有大量的Web容器,如Tomcat和Jetty等,而且还有很多优秀的开源和商业软件应用服务器产品,如Apache Geronimo,WebSphere和GlassFish。因为Java和JRuby的紧密耦合关系,在JRuby语言运行环境下,也可以开发基于Rails框架的网络应用软件。在Ruby语言中,Rails框架是最流行的网络软件开发框架。我们可以把Rails框架应用软件部署到这些应用服务器上,使得JRuby语言程序获得更大的活动范围,以便更好地融合到企业的软件运行环境中去。
1.3.2 Java语言的桌面软件库
尽管Java的桌面软件发展了很多年,且也有很好的桌面软件库,如Swing和SWT,但是使用它们开发一个桌面软件仍然相当复杂。我们能否把JRuby语言和Swing或者SWT相结合,开发出一个跨平台的JRuby语言桌面应用软件框架呢?答案是肯定的,现在这种框架正在不断出现,如著名的高质量开源网站Codehaus就公布了一个使用JRuby和Swing系统的项目Swiby。在本书的第8章将会详细介绍相关的开发技术。
1.3.3 Java语言虚拟机
Java语言的虚拟机是JRuby语言最重要的优势之一,也是Java语言的核心。JRuby语言依附于功能强大的Java语言的虚拟机,这使得JRuby语言本身的良好特性得到了进一步地发挥。Ruby语言本身是一门解释性语言,其代码在执行之前需要翻译成机器码,这需要时间。而JRuby语言可以非常容易地把程序变成字符码代码,直接在虚拟机上运行。这样就把JRuby语言开发过程的简易性和程序运行过程的优化有机地结合在一起了。Java语言的虚拟机使得程序得到优化的运行结果。这样一来,JRuby语言就不仅仅是简单的动态解释性语言,也是一门编译性语言。更详细的介绍将会在本书的第10章进行阐述。
尤其在今天,随着多核处理器在桌面电脑中的应用逐渐增多,如何在程序中充分发挥多核处理器的作用,同时充分利用Java语言的虚拟机线程特点已经成为一个重要的课题。事实上软件开发已经滞后于硬件的发展,所以对于我们来说,这是一次极好的软件发展机遇。
1.3.4 Java语言数据库
数据库系统是应用软件最重要的组成部分之一。JRuby语言程序能够与基于Java语言的数据库更为紧密地结合,如H2数据库系统(性能相当出色,功能相当强劲的Java数据库系统),在嵌入式数据库方面表现尤其突出。今天移动设备的发展日新月异,嵌入式数据库系统将会受到越来越多的重视和应用。在移动设备中,集成嵌入式数据库的JRuby语言程序也将会得到充分地发挥。
在Google智能化手机操作系统Android上就可以采用这种嵌入式数据库来开发JRuby语言的应用程序,开发这种程序的商业前景是显而易见的。
1.3.5 Java语言应用软件库
在利用Java语言丰富的软件库方面,JRuby语言正变得越来越得心应手。例如,Java语言中著名的搜索软件项目Lucene也能够有机集成到JRuby项目中,且使用起来简单方便,代码也很简洁。事实上,我们能够把所有的Java语言软件包拿来为JRuby服务。在本书的第9章中,将会通过实例来解释实际的开发方法。
尽管丰富的Java资源对JRuby语言十分重要,但是JRuby语言本身的优雅特性才是保持其赢得人们喜欢的最重要因素。虽然创造一门计算机语言并不是一件很困难的事情,但是要让一门计算机语言博得相当多的软件工程师喜欢就非常困难。Ruby语言从创造时就坚持这样的一个理念:这门计算机语言是为软件工程师创造的,而不仅仅是为计算机量身定制的。
在结束这一节之前,引用两位软件工程师的话。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语言的相同环境,而没有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, 软件工程师
翻译过来是:太阳公司知道,引入一个新语言和平台,以及使其成为业界事实上的标准意味着什么。那非常困难且非常昂贵。他们已经漂亮地这样实施过一次(指引入Java语言),并且耗费了他们大量资金。但是,Java不可能永远处于顶点。他们也不想再进行一场类似的战争。如果他们能够让Rails框架在JRuby语言上继续生存下去,那么这次他们就无需再进行任何的作战即可“处于顶点”了。他们让Rails社区为他们做到了这一点。