|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你总不能说你写框架吧,那无疑会加大工作量,现在大多企业采取的是折中的办法,就是改别人写好的框架,可要改框架,前提是你对这个框架足够的了解,这就更难了。OlaBini议论了JRuby,一种用Java写的,运转在JVM上的Ruby完成。除此以外,Ola还表达了他对Ruby社区的浏览,并分享了他对Ruby社区与Java社区的分歧的地方的意见。他还扼要的会商了关于Ruby的将来的意见,出格是它有潜力交融一些来自Lisp的壮大功效。
团体简介
OlaBini效率于ThoughtWorks,比来写了“JRubyonRails理论”一书,并由Apress出书。他对野生智能、Lisp、Ruby,和分歧言语之前含混的界线十分感乐趣。Ola的博客在http://ola-bini.blogspot.com/
寓目视频:与OlaBini一期切磋JRuby
<br>我叫ObieFernandez,如今正代表InfoQ在QConSanFrancisco采访OlaBini。他无疑是Ruby天下的摇滚明星。请你向不雅众先容一下本人吧。
<br>
我叫OlaBini,来自瑞典,在ThoughtWorks事情。我是JRuby的中心开辟者之一。也是“JRubyonRails理论”的作者,这本书在上个月由Apress出书了。
<br>既然提到了你的书,跟我们先容一下书的内容吧。
这本书对JRubyandRails做了理论性的先容。它是基于项目标,也就是说你不会读到一切的实际,而会看到良多有用的例子来先容JRuby的集成、怎样利用JRuby和Rails,和如何在Rails中分离Java情况中的企业级的工具;做一些工具,好比XML,但不利用Ruby的XML库,另有与企业级使用EJB的互动,诸云云类。
<br>它是依照引导书的布局来编排的吗?
基础上是。它是由4个分歧的项目构成。我们从草案入手下手,渐渐到场愈来愈多的初级特征,一步一步完成一切的功效。
<br>能告知我们你在JRuby团队中的脚色吗?
我都做些甚么呢,一般在团队中我次要卖力扩大部分,由于JRuby必要用C扩大来从头完成一切的盘算部分;这是全部完成中相称年夜的一部分。而这就是我所做的大批事情的一部分。一年半到两年之前,我入手下手从头完成Ruby的YAML库,从当时入手下手我一向在做良多工具。我是卖力ActiveRecordJDBC的成员之一,这个组件让Rails可使用JDBS驱动。我介入了这个完成的一切部分,而这才是关头。比来我也努力于正则表达式引擎,和其别人一样,我次要在修改各类毛病。
<br>你面临了一些应战,一些出格的应战,好比让正则表达式在JRuby中一般事情。你能跟我们先容一下吗?
这里的成绩是Java的正则表达式引擎是一个很好的引擎,可是它不切合Ruby的事情体例。而我们必要让这个完成具有完整的兼容性,不管你能想出甚么举措来出现毛病。我们最入手下手发明的一个真正成绩来自于卖力转换多半据的Rails正则表达式。它在Java中溃散了,由于它利用了接纳递回算法的Java正则表达式引擎来凑合大批的特别正则表达式,了局把仓库给挤爆了。因而我们决意寻觅另外一种计划,我们利用了JRegex一段工夫。当我们发明它时,它已中断更新了。它具有我们必要的一切特征,它比Java正则表达式引擎要快,最主要是的,它自己不是递回的。因而我们很喜好它,并修改了它的一些毛病,用它作为我们次要的正则表达式引擎,用在1.0刊行版和1.01、1.02和1.1beta刊行版中。它是个好的引擎,但我们也入手下手碰到一些它还不敷合用的中央。在那些情形下,我们指了局上,会有一些特别的情形,引擎没法找到了局……一个典范的例子是:好比你有一个很长的字符串,另有一个正则表达式来举行回溯查找,而正则表达式的一部分是常量串。假如在长字符串中找不到这个串,MRI就会在那之前停上去,它不会试图回溯地查找全部字符串,由于不论如何,正则表达式都不成能婚配。而JRegex不是这么做的,因而在某些情形下,有的正则表达式会把我们的引擎弄溃散。
<br>这么说基础上是你接受JRegex项目了?
是的。我们很喜好它,并把它放进了我们的存档。我们一向在到场、作废并公布各类更新,但因为我们已做了良多工具了,而且我们在引擎中到场的其他一些工具都是专门针对JRuby的,因而我们曾自愿往失落一些不太切合Ruby引擎的特征。
<br>它有允许上的成绩嘛?
没有成绩,它有BSD范例的允许。
<br>甚么是Oniguruma?
Oniguruma是MRI和Ruby1.9接纳的下一代的正则表达式引擎。它是完整国际化的,基础上可以撑持一切你能想到的多字节字符和编码。它还撑持一些真正初级的特征,好比称号组、向前找、向后找之类,能使得递回正则表达式变得很简单。它有一些十分好的特征。同时它也比现有的正则表达式引擎年夜很多。
<br>就是说它比现有的正则表达式引擎具有更多的特征?
是的,没错。
<br>假如它是1.9中的工具,那末它是怎样影响JRuby的呢?JRuby基础上是一个1.8的完成。
我们正在企图并努力于从头计划我们的完成,来兼容1.8和1.9。我们次要看中典范的1.9特征。比方,1.9的case声明承受文本参数并外行间利用它,而不往挪用具有更好体现的triple等式。但这相对Ruby1.8来讲是一个很年夜的变更。我们要做的就是承受一切这些变更,差未几给每个都加上标记,然后你就能够选择要利用1.9的哪部分了。作为让正则表达式兼容1.9的一部合作作,我们有一个团队成员努力于把Oniguruma移植到Java上。这是个成心思的事情,是个很复杂的移植,至今还没有完成,让我们拭目以待。它大概会是我们将来的次要正则表达式引擎。因而我们要做的就是当我们运转在1.8兼容形式时,我们就仅利用1.8这部分,如许就可以失掉和1.8一样的功效了,但愿如许也能办理功能的成绩,也为正则表达式供应扩大性,就像MRI那样事情。
<br>以是你是在一个共同的地位上,因为你在JRuby中的位置,你触及的范畴涵盖Java和Ruby两个阵营,同时也为ThoughtWorks事情。因而你打仗了良多企业级使用的开辟,而且你看到了应战和对JRuby的回收,但你又比我们其别人具有更强的了解力,我是说,关于JRuby未来的使用情形来看。你批准吗?
没错。从我入手下手以离开如今这段工夫很成心思。很分明JRuby很合适企业级使用。在其他很多情形下,人们其实不真的必要运转在Java上的才能,但企业级使用必要。良多时分,好比我们有很年夜的投资银行,他们不同意任何工具进进体系。你不克不及在他们的主框架和盘算机中央里运转任何工具,假如它们不是Java的话。
<br>在那些情况中Ruby能被以为是一个库吗?
在那种情形下,即便告知他们它事实是如何事情的,它事情得很好,由于它运转在Java上,也是白费。可是在很少的情形下,有一次,我的一个同事JoshGraham跟我说了几天前他事情的情形。他为我们做一些JRuby的事情。有一个我们的客户,他也许是说他告知谁人客户:“这只是个Java项目。这些静态的文本文件只不外是设置信息罢了。”我纷歧定批准那种小小的棍骗,但它切实其实起了感化。他们同意我们用更好更快的办法托付更多的功效,而且给客户带来起色。这对两边都有优点。
<br>你以为在甚么情形下JRuby会成为次要的Ruby平台?
我想这不年夜大概。在某些阵营中,Java平台其实不合用。比方一些典范的小范围剧本,你必要敏捷实行,很短工夫内就停止。在这类情形下,JRuby的启动工夫是个成绩,由于你必要先启动一个JVM,然后再启动JRuby,这都必要花很多工夫。对此我们有一些办理计划。比来我们到场了一种叫做“nailgun”的机制,它在一些情形下能年夜幅改善启动功能。以是有良多办法。可是在很多情形下其实不必要这么做。另外一方面,假如JRuby真的变得十分快的话,在很多基准测试中,我们都已比1.9要快了。但在其他基准测试中,比方典范的Rails基准测试,我们年夜多半情形下只快一点,但没有比正轨的Ruby完成快太多。以是我以为假如我们可以改变情势,比拟Rails对这一类年夜型使用程序能年夜幅进步功能的话,则十分有助于JRuby的使用。惋惜Ruby社区其实不那末在乎功能,而更在乎把工具用尽量最好的体例做出来。
<br>让我们来谈谈这两个社区之间的区分吧。既然你跨足于这两个社区,并且你在介入JRuby之前已做了那末多的事情,那末你以为Java使用开辟社区和Ruby使用开辟社区之间的次要区分是甚么?
这个成绩真的很难。我只晓得我十分酷爱Ruby社区。毫无疑问Ruby社区是我曾介入的最好的社区,它十分棒,可是欠好和Java开辟者社区举行对照。他们属于完整分歧的天下。我熟悉的Java使用开辟者次要都是在企业级范畴。我以为年夜多半Ruby开辟者都更有热情。这类热情和自大感在Ruby社区和Java社区中是分歧的。我的团体感到是,我发明Ruby开辟者都很入神于他们所做的事变,并且都为此而自满。而关于Java开辟者来讲,就算有人切实其实对社区做了很年夜的奉献,他们更倾向于以为那是他们事情的一部分。即便他们有热情,也和Ruby开辟者不年夜一样。
<br>你以为你未来会如何?你已在ThoughtWorks有必定位置了,你也介入了JRuby。这就是你今朝最好的成绩吗?仍是方针更高?
我如今就做得很高兴。JRuby切实其实很主要,但并不是要闭幕一切的编程情况。并且我真的但愿能看到Lisp能尽力回回,那样我也很愿意投进个中。我如今切实其实没偶然间做一切喜好做的事变,但我晓得我想做甚么。并且我以为把一种言语好比Ruby交融到Java如许的平台上,而且再交融进一些Lisp的壮大功效长短常成心思的事。如果我未来偶然间的话,我会很愿意坐上去把分歧言语的特征全体混在一同,创建起Ruby曾创建的工具,并把Ruby带进下一代言语,要比如今的Ruby还好。我如今不晓得那会是甚么模样的,但我晓得必定会比Ruby要好。等着看看Ruby2.0是甚么模样的吧,那必定很成心思,很好玩,但我仍是以为一定会有更好的。
<br>固然。听起来很使人冲动,我敢一定不但是我在等候这些将来的开展和立异的。十分感激你承受InfoQ的采访,祝你统统好运!
感谢。
来自:http://www.infoq.com/cn/interviews/ola-bini-discusses-jruby-cn
没有那个大公司会傻了吧唧用.net网页编程开发大型项目,开发了,那等于自己一半的生命线被微软握着呢。而.net网页编程不行,限制在window系统,又是捆绑,鄙视微软之! |
|