Chinaunix首页 | 论坛 | 博客
  • 博客访问: 376532
  • 博文数量: 1051
  • 博客积分: 53280
  • 博客等级: 大将
  • 技术积分: 6670
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 13:21
文章分类

全部博文(1051)

文章存档

2011年(1)

2008年(1050)

我的朋友

分类:

2008-09-09 16:44:50

在近几年,随着计算机硬件性能的提高,脚本语言也受到了开发人员的不断追捧。然而,很多流行的脚本语言都是各自为战(如Ruby、Python、Perl等)。它们都拥有自己的解析器和丰富的功能库。然而Sun可能是看到了脚本语言是未来开发语言发展的趋势,因此,为很多常用的脚本语言提供了JVM版本。

由于动态语言和以、为首的强类型语言有着本质的区别,因此,直接将它们编译成的字节码有些困难。因此,Sun想了个更好的方法,直接使用Java语言为这些动态语言来编写解析器。这样以来,不仅可以很容易解决动态语言的跨平台问题,而且也更容易实现。

一、JRuby:JVM的第一件动态语言外衣

第一个进入Sun的视线的是Ruby,Ruby是一种功能强大的面向对象的脚本语言,她可以使您方便快捷地进行面向对象编程。有时使用像Smalltalk、Eiffel或这样正式的面向对象语言来开发一些小项目显得有点"小题大作",而Ruby刚好可以满足这些面向对象编程的需求。当然了,您也可以使用Ruby进行普通的面向过程编程。Ruby的文本处理能力极强,与Perl不分伯仲。同时,Ruby的语法简单,还有异常处理以及迭代器等构造,使编程变得更简单了。

同时,Ruby还拥有一个类似Struts的MVC Web框架Rails,利用Rails可以非常快速的开发基于MVC模式的Web程序。Sun看到了Ruby和Rails的发展前景,类此,首先提供了基于JVM的Ruby:JRuby。因此,也可以这么说,JVM + Ruby = JRuby。

JVM + Ruby = JRuby

Sun不仅提供了JRuby,而且也在自己的NetBeans中提供了很好的Ruby/JRuby支持。

JRuby的开发界面

在以前,Sun很少为某种动态语言提供开发环境,而JRuby的特殊待遇可见Sun对JRuby的重视程度非同一般。这也许是Sun在将JVM变成真正的虚拟机(也就是去掉JVM前面的J)的第一步。由于JRuby运行在JVM上,因此,JRuby就理所当然地可以使用JVM及庞大的Java库了。也许这也正是Sun认为JRuby才是Ruby和Rails发展的真正王道的原因。

二、Jython:JVM阵营的又一力作

当Sun看到了JRuby/Ruby的成功后,并不甘心在JVM上只支持Ruby一种动态语言。因此,在支持JRuby后不久,Sun就雇佣了两位Python社会的开发人员来为JVM披上一件新的外衣,这就是Jython。

Jython是Python编程语言100%纯Java实现,它结合了Python和Java虚拟机和库的优点,成为了Java平台的有益补充。

最初的Jython又称为JPython,是一个十足的Java应用程序,它允许使用Python编程语言的语法和大多数特性。和其它编程语言比较,Jython有如下几个优点:

1. Python解释器shell的Jython版本可以对某些想法和API作便利的实验和研究。而不必经历一般的Java编译运行周期。

2. Python被设计成动态且通用的,因此你不必通过使用复杂的库(如用于Java反射和内省的库)来添加这些特性。这使开发更简单,而且它在自动测试框架中特别有用。

3. 部署简捷,提供了及时部署能力,无需花大量时间在打包和编译周期上。

4. 易于学习和使用,技术门槛低,可以轻松地找到大量的使用者。

三、总结

虽然在JVM上运行的这些动态语言在性能上可以略逊于原生的动态语言。但是由于它们可以和JVM无缝连接,因此,这些J...语言天生就具有了和Java语言一样强大的功能。正所谓抱棵大树好乘凉。看来以后Sun还会在JVM中支持更多的动态语言。当然,目前除了Sun官方提供的支持,第三方也有了很多关于其他动态语言的支持,如原生的Groovy。还有Tcl、BeanShell等。看来以后JVM这个词要消失了,也许我们以后要直接叫JVM为VM了。但愿这一天会早日到来。

【责编:Ken】

--------------------next---------------------

阅读(119) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~