模块化Java:声明式模块化
本文是模块化Java系列文章的第4篇,介绍的是声明式模块化。文中描述了组件如何以声明的方式来定义并组织在一起,而无需让代码依赖于OSGI API。
作者 Jeff Xiong 发布于 2007年4月26日 下午11时29分
近日InfoQ中文站对XRuby项目的开发者郑晔进行了一次采访。郑晔介绍了XRuby项目的基本情况和发展方向。解释器和编译器,在前端部分都是相同的编译器前端技术有测试数据表明,XRuby的性能超过了Ruby1.8.5版本。在最近进行的一次性能评测中,XRuby由于尚不支持YAML而没有参加,JRuby与Ruby1.8.5之间还存在较大的性能差距。,包括词法分析、语法分析、建立语法树等等,主要的差别在于执行 的方式不同。解释器是直接执行一个其内部的可执行结构 ,比如Ruby现在的实现就是中间生成一个树,这棵树就是Rub y内部的可执行结构,然后执行这棵树,而编译器是生成目标平台的 可执行代码,比如我们常见的编译器生成对应平台的可执行文件 。由此可见,二者的执行方式并不是在同一个级别上执行的 ,一个是平台之上利用软件构建的执行引擎,一个是利用平台 (硬件或虚拟机)执行,所以,性能上会有一些差别。
简单说来,XRuby生成的代码直接运行在JVM上,而JRuby在JVM上构建了一个执行引擎来执行程序,而且是Ruby现在实现得不那么好的那个执行引擎。所以,XRuby目前在性能上可以领先JRuby许多。
较早前InfoQ的另一篇报道详细介绍了XRuby与JRuby的技术差异。
Ruby解释器 使用笔记本电池 耗时 ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-linux] 31.0 +/ 3.1 ruby 1.9.0 (2007-04-18 patchlevel 0) [i686-linux] 31.1 +/ 3.27 ruby 1.8.5 (2007-04-23 rev 3539) [i386-jruby0.9.9] 67.5 +/ 7.15 使用外接电源 ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-linux] 12.0 +/ 1.2 ruby 1.9.0 (2007-04-18 patchlevel 0) [i686-linux] 12.4 +/ 1.8 ruby 1.8.5 (2007-04-23 rev 3539) [i386-jruby0.9.9] 33.3 +/ 6.83
因为JVM平台本身并不支持动态语言的特性,所以,在XRuby在谈及XRuby项目的发展时,郑晔说道:(包括JRuby)需要用Java代码构建出一个动态语言支撑的 结构,也就是我们所说的Runtime。现在这个Runtime 是我实现的,基本上是按照C Ruby的结构进行实现,因为我之前翻译了《Ruby Hacking Guide》,对C Ruby的动态语言Runtime有一定的了解。其实,支持这些特性本身难度并不大,但是需要大量的时间和精力来做这件事情,这也是XRuby最为欠缺的资源。
XRuby在某些方面进行的一些工作,会比较有趣,比如正在开发的Antlr V3前端和调试器等等。这些方面对于在JVM上实现动态语言是一个比较有益的探索。XRuby本身起步时,考虑得更多的是乐趣,参与者都是因为乐趣加入其中的。所以,我想说,XRuby的一个很大的优点就是它还年轻,其中有很多可以做的有趣事情。继JRuby的开发者Ola Bini之后,郑晔也加入了ThoughtWorks公司。XRuby这个“有趣的”Ruby实现未来会怎样,我们拭目以待。
短时间之内,我们不敢奢望有人可以把XRuby用于实际的项目。现阶段,我们只是希望赢得更多的关注,吸引更多的人加入到XRuby的开发中来,这样,可以尽快实现XRuby的目标。
本采访是在伦敦举行的QCon2009上记录的,Ian Robinson和Jim Webber探讨了如何将Web作为整合平台以及REST在理论上和实践中的好处。
项目管理对于项目成败至关重要,但实践中每个项目都有自己的独特性,没有现成的解决方案可以套用。书中从应对实际风险的角度出发,讲述了从项目启动、项目规划到项目结束的整个管理流程,展示了作者的思考过程。本迷你书从原书中精选出5个章节。
在这个演讲中,Fred将会揭示敏捷的一些外在因素,并会重点关注敏捷获得成功的内在原因。从案例研究和真实的项目经验来看,Fred认为:工具、管理体系都不能让你变得敏捷。敏捷的成功,植根于士气高涨、充分授权的工作者身上,他们能够以不同以往的方式思考问题。
Eben Hewitt的新书《Java SOA Cookbook》从Java实现的角度讨论了面向服务架构。Eben在书中讨论了SOA基础、工具、最佳实践和SOA治理等主题。
Mark Richards的新书《Java消息服务》第二版覆盖了JMS的许多主题, 包括发布和订阅模式以及点对点模式,消息过滤和事务等。InfoQ与Mark谈论了跟他的新作。
2 条回复
关注此讨论 回复