前将军——Groovy - 强大的,高层次,企业级JVM脚本语言。Groovy是一种面向对象的语言,编译为字节码。其主要特点是它的语法与Java极为相似,但与很多杂乱的设置都删除了。 Java开发人员可以很使用Groovy,而事实上,Groovy的编译器接受纯Java的语法,Java开发人员学习一个全新的语法的脚本语言。
对Groovy的,简化了代码的诸多方面。尤其语言能力的推断,而不必一个变量的类型明确表示。例如,Groovy可以检查一个变量的初始使用,并确定它是一个整数,字符串等。程序员可以自由地提供这方面的代码只是在Groovy中工作。
Groovy中是最早的脚本语言之一,以提供另一种功能,称为封锁,迫使Sun公司Java开发(现在的甲骨文公司)提供。封锁使开发者指定的代码作为一个独立的实体,并把它钉住到其他编程业务的一小部分。这使得在描述程序的功能非常简洁,并在其他语言,可以提供一种手段,为创建可作为函数的参数传递给其他对象的功能。
Groovy中还提供高层次的结构处理,如字符串处理标准任务,生成XML,单元测试等等 - 所有这些都可以节省大量的时间开发。事实上,对Groovy的早期就注意到其高级别语法和测试支持的优势,迅速淘汰用于Java代码单元测试。
Groovy中具有独特的历史,开源世界的奇葩。该项目启动于2003年。创始人后来移居到其他项目,在不同时期,都认为Groovy不能成功。不过即使没有他们,开源社区贡献者也对Groovy产生浓厚的兴趣,保持了Groovy前进。一个领先的Web框架,使用Groovy和在他们的支持IDE最终走到世人面前。
Laforge和Grails的开发者以及现在SpringSource和VMware这些企业的支持Groovy的未来是有保证的。尽管JVM的性能优化,但是一些Groovy特性却有很高的成本。同时虽然Groovy语言的受欢迎程度正在上升,它患有长期的弱点,正在慢慢出现:缓慢的运行速度。
中将军——JRuby - 比红宝石更好的吗?JRuby是一个Ruby语言的Java的端口。Ruby本身是一种脚本语言在1990年代中期的日本出现,它已经得到了广泛应用。在2004年的美国和欧洲Ruby的杀手锏级别武器——Ruby on Rails出现,使得Web应用程序装配的各部分更容易设置,Ruby被迅速投入使用开发小型和中型的企业网站。 Rails的普及导致了Ruby的爆炸性增长。
Ruby语言有很多在Groovy中的功能,但它使用了更简洁的语法 - 让开发人员得到更多的工作。Ruby面临最大的问题是性能。在多个基准里,它都是排在最后的。这促使许多竞争性项目,以重写Ruby。其中,最成功的是JRuby的。
JRuby项目开始于2001年1月,Ruby的代码直接端口到JVM。2007年,Sun工程师对JRuby进行开发——可以运行Rails的Ruby和交付性能媲美非Java的Ruby。自那时以来,开发人员转移到Ruby on Rails上,在JRuby的工作已持续快速上涨并迅速抓到了商机。在此期间,JRuby的性能是现在这个版本比Ruby发布的1.9版本要快得多。
在语法上,JRuby非常吸引开发人员。它还拥有一个纯面向对象(Java不同,其中有些实体对象都没有)。一名开发人员的使用意味着你可以将立即从编码到执行。JRuby已经是Java平台的巨大库。 Ruby有很多好的代码库,也是众多广为使用标准的Java库。
对Java的运行环境和代码库来说,访问是决定JRuby的未来是至关重要的一环。Ruby一直没有进入在一个大企业,JRuby则可能是存进入大企业。 JRuby中的优点,企业可以在JVM上的应用程序运行,而原生的Ruby虚拟机是一种不成熟的数据中心。此外,由于与Java应用程序集成,企业可以通过采用JRuby和Java软件中还利用到以前开发的Ruby项目中去。
企业是否会赞成的Groovy或JRuby完全取决于科技发展速度。这两种解决方案工作,是由发展商支持的(而不是由志愿人员),有日益扩大的工具供应商长时间的支持,迅速提供工作代码。而以下三种语言现在并不像Groovy和JRuby成功,但他们有一些必定能使他们在未来数年内的取得成功。即使他们没有达到这个水平,他们也都有众多的热情支持者。