| 我接触Groovy已有一段时间了。Groovy与Ruby有些相似,也是一种解释性脚本语言,但Groovy与Java有紧密的集成(事实上,Groovy就是运行于Java虚拟机上,在运行时产生字节码)。由Groovy的特征列表可知,Groovy就像是Ruby的克隆,或者说是完全效仿Ruby,但实现上却没有Ruby那么专业。Groovy的奠基人是James Strachan,他在Java领域内,最知名的就是非常擅长开发他梦想中的开源项目(如ActiveMQ,Groovy,ServiceMix等等),但却不能很好地让这些项目闪光。
接下来再说说JRuby。JRuby执行于Java虚拟机之上,本身并不是一个独立的解释器。它仍然还需要进行更多的改进,但它已经很好地结合了Ruby和Rails的功能,它现在是一个强有力的与网络应用框架结合的语言。
据我猜测,使用Java的人可能还是会坚持使用Groovy。Groovy紧紧跟随JCP轨迹,变成了被承认的Java脚本语言。所以即使它现在可能名声不太好,但最终它还是会成为一个有声望的,可靠的产品。
那些并不会拘泥于特定平台环境的人可能会更看好Ruby。坦白地说,Ruby和Java一样通用,它可以运行在Linux,windows和Mac OS X环境下。虽然它不是完美无瑕的,比如工具少的可怜,没有很好的IDE支持,但它拥有非常吸引人的干净的运行状态,而Java却是有100MB的IDE和巨大的企业应用服务器,这与干净的Ruby是无法相比的。但不幸的是,Ruby没有像Java那样成熟和巨大的框架结构。所以,如果你想要做文本搜索,用Ruby就不那么方便了,最好用Java的Lucene。如果你想要良好的图形界面框架,Ruby的就不太好了,简直就像是JSP 1.0,而Java却有Tapestry。在理想世界,改变平台不是前进两步,而是后退一步,这对Ruby来说是有些遗憾。 |