序一.
“Hey, you got your Ruby in my Java!”
“You got your Java on my Ruby!”
我并不是想说JRuby和好时的花生黄油杯巧克力一样美味,但看着Ola和他的同事们为JRuby工作确实是一种享受。他们将一个不完整的Ruby环境(和子社区)变成了可以用多种方式来推动整个Ruby社区进步的东西。
以前,Tim Bray还在抱怨Ruby世界里没有好的开发工具(比如强大的IDE、重构浏览器等)。当时我说Ruby中没有这些工具是因为Ruby社区不用它们也照样能进行开发。后来,JRuby出现了,NetBeans和Eclipse开始着手开发Tim渴望已久的Ruby工具。当这一切发生时,我想了很多,Java开发者也有类似Tim那样的对工具的渴求,JRuby将他们带入了Ruby的世界。
JRuby团队在将他们的实现交付测试时,总是悄悄地给别的开发团队透露一些信息。这些天里,经常可以看到JRuby的开发者挂在Rubinius IRC频道上(freenode上的#rubinius),YARV的开发者也常出现在Rubinius和JRuby的IRC上。不同开发团队间的讨论很引人入胜。你也许会想象出这么一个场景,说不定JRuby还帮助了Microsoft公司的IronRuby呢。
有了运行在JVM上的JRuby后,Ruby就能更好地出现在某些企业级环境中了。在日常工作中,当我还在Ruby上奋斗时,JRuby已经让Ruby解决方案超越了其本身的范畴。很快,JRuby就将成为快速的Ruby脚本架构和大型Java应用程序间的桥梁。这是我一直向往的。
JRuby也在改变着Java/JVM的世界,它的成功让JVM成为运行Groovy、Jython以及与它们同类的语言的理想场所。Sun公司的内部传来了新的、更动态的声音,提出了一些通用的需求,在未来的几年里这会带来巨大的变化。
无论是一个初涉Ruby的Java高手,还是才接触Java不久的Ruby人,本书都能带领你穿越新语言间的灰色地带。希望Ola的这些努力能让你知道不仅JRuby本身很棒,而且Java和Ruby结合后也非常棒。
本书将带你进入一个正在茁壮成长的社区,每个新的JRuby用户都可能带来一些变化。希望你在阅读本书后能接过火炬,寻求(并共享)新的方法,用JRuby来改善你的生活。
祝你的JRuby之旅一路顺风!希望很快能在JRuby的IRC频道和邮件列表中见到你的身影。
Pat Eyler
资深Ruby专家..
序二
过去的几年里,随着Ruby on Rails的崛起,Web应用程序开发的世界受到了巨大的冲击。很多Java世界中的名人(或是不停地叫嚣的人)都成了Ruby on Rails的拥护者,甚至宣称要告别Java世界。
我使用Ruby已经有很多年了,是它的忠实拥护者。比起那些主流的大括号语言,它更关注于简洁的语法,这让我能更清晰地表达我的意图。它完全面向对象,拥有像闭包这样的强大语言特性。值得一提的是它还为元编程和创建域专用语言提供了很多工具。有了这些特性的支持,Rails成为了极富影响力的Web框架。
Rails出现后,我和许多试用过它的同事进行了讨论,他们都是使用过不同Java和.NET Web平台的人,其中的绝大多数人认为Rails极大地提高了他们的工作效率。我不想用“生产率提高了50%”这样严谨的话语,因为软件的生产力本身就不是能轻易测量的。抛开它,我们仍然可以说Rails是一项好技术,因为它获得了广泛的认可。
迄今为止,大多数的图书和文章都关注于在C语言实现中使用Ruby on Rails。而本书则有所不同,它让相同的Rails工作在另一个平台上——Java。JRuby正努力打造一个运行于Java JVM之上的高效Ruby实现,我认为无论对Ruby还是Java,它都会成为一个重要的项目。对Ruby开发者而言,它提供了一个为人所熟知的部署平台,在大企业里更是如此。那扇曾对Ruby关上的大门,在我们讨论到Java部署时又再一次被打开了。
对Java社区而言,JRuby提供了一个体验强大语言和框架的机会,与此同时还能继续使用Java那些杰出的库,在工作中结合Ruby和Java。我看到了JVM的未来,它能够使用多种语言,而且语言之间可以清晰地进行互操作,因此你能为特定的项目选择合适的语言。JRuby是在这一方向上迈出的重要一步,它为JVM带来的不仅是一门语言,更是一个重要的框架。Rails搬进了一个充满咖啡因的新家里,本书可以帮助你更好地理解它。
Martin Fowler
.ThoughtWorks首席科学家,《重构》一书作者...