background image

JAVA 程序员应该知道的五大基于 JVM 的脚本语言

还记得以前本站的一篇文章《如何在 Google App Engine 上运行 PHP》吗,其实那是借

 

用 Quercus

 

,一个 100% 的用 Java 

 

实现的一个 PHP 引擎。今天,这样的东西太多了,

能运行在 Java 的虚拟机 JVM 上的程序意味着有天然的跨平台性,现在 JVM 并不单单只
能运行 Java 程序,在 JVM 上出现了若干使用 Java 虚拟机运行的脚本程序,比如什么
PHP, Python, Ruby 等等,这里有一篇文章评论了在 JVM 上的可以运行的排名前五脚本
语言。他们分别是:
  Groovy:构建在强大的 Java

 

语言之上 并添加了从 Python,Ruby 和 Smalltalk 等

语言中学到的诸多特征,为 Java 开发者提供了现代最流行的编程语言特性,而且学习成
本很低(几乎为零),在开发 Web,GUI

 

,数据库或控制台程序时, 通过减少框架性代码 

大大提高了开发者的效率。支持单元测试和模拟(对象)

 

,可以简化测试。无缝集成 所有已

 

经存在的 Java 对象和类库。直接编译成 Java 字节码,这样可以在任何使用 Java 的地方 
使用 Groovy。
  JRuby:一个纯 Java 实现的 Ruby 解释器。通过 JRuby,你可以在 JVM 上直接运行
Ruby 程序,调用 Java 的类库。很多 Java 编写的 Ruby IDE 都是使用 JRuby 来解释语法
的。
  Scala:一种多范式的编程语言,设计意图是要整合面向对象编程和函数式编程的各
种特性。Scala 编程语言近来抓住了很多开发者的眼球。它看起来像是一种纯粹的面向对
象编程语言,而又无缝地结合了命令式和函数式的编程风格。Scala 的名称表明,它还是
一种高度可伸缩的语言。Scala 的设计始终贯穿着一个理念:创造一种更好地支持组件的
语言。
  Fantom:Fantom 

 

前身是 (Fan) 

 

是一个基于 Java   

和 .NET 平台的编程脚本引擎,

 

用来在运行时产生 JVM   

和 .NET 

 

平台的字节码,该语言是面向对象的,跟 Groovy 和 

JRuby 

 

有点类似,可通过特定的接口来集成 Java 的类库。

  Jython:Jython 由于继承了 Java 和 Python 二者的特性而显得很独特。其是一种完
整的语言,而不是一个 Java 翻译器或仅仅是一个 Python 编译器,它是一个 Python 语
言在 Java 中的完全实现。Jython 也有很多从 CPython 中继承的模块库。最有趣的事情是
Jython 不像 CPython 或其他任何高级语言,它提供了对其实现语言的一切存取。所以
Jython 不仅给你提供了 Python 的库,同时也提供了所有的 Java 类。这使其有一个巨大
的资源库。
  下面是一张表格比较了这五大 JVM 脚本语言:
 

Groovy JRuby

Scala

Fantom Jython

风格类型

OO / 动态

OO / 动态

OO, 过程/ 静态 OO / 静态

OO / 动态

源语言 Java

Ruby

N/A N/A Python

运行

编译型 编译型,

解释型 编译型 半编译型

编译型

平台

JVM JVM JVM JVM, .Net CLR

JVM

Java 集成

极好

极好

极好

好 极好