InfoQ

新闻

Ruby VM综述:MacRuby 0.2、JRuby JMX和Ruby 1.9

作者 Werner Schuster译者 马家宽 发布于 2008年6月23日 上午12时32分

社区
Ruby,
Java
主题
动态语言,
JRuby,
脚本,
运行时
标签
JRuby
MacRuby是Objective-C运行时上Ruby 1.9的一部分(你可以阅读InfoQ对MacRuby开发者Laurent Sansonetti的访谈)。

现在一个新的版本,MacRuby 0.2已经可用。下面摘引部分它的发布说明:
在MacRuby 0.2中,所有的字符串、数组和哈希表现在都是基本的Cocoa类型,分别表示为NSString、NSArray和NSDictionary对象。
整个的String、Array和Hash接口都使用强大的CoreFoundation框架在Cocoa等效架构之上进行了重写。
[..]
开 发人员不再必须将Ruby原始类型和Cocoa之间做相互转化。例如,MacRuby中创建的一个String可以再不加转换的情况下被直接传递给一个接 收NSString参数的C或Objective-C API。类似的,Ruby String类的任何方法可以同样从一个来自Objective-C的NSString中调用。
使用Objective-C数据结构和String还会带来一些性能方面的改进。现在已经可以在MacOSforge下载MacRuby 0.2

JRuby开发团队一直在为JMX而忙碌。Charles Nutter最近向JRuby的主版本中添加一些MBean,这使得监视JRuby的中间变量成为现实。现在,开发者可以察看JRuby的优化器和JIT的工作。这使得人发人员可以对某个运行在JRuby上的应用如何与优化器交互有一个感性认识。此外,随着"--manage"命令行开关的加入,现在可以使用像JConsole这样的工具来更好的察看信息。

由JRuby团队的Tom Enebo所负责的JMX gem则沿着另一个方向在努力,即使用JMX来导出信息。它使得开发者可以连接到JMX服务器并列出导出的MBeans,最后使用属性或调用操作。另一个具有这一能力的库是jmx4r。Tom Enebo的jmx gem还包含了在JRuby定 义MBean的能力,所定义的MBean随后可以被到一个常规的MBean服务器(JMX自Java5亿来一直被包含在Java中)。有了这 些,JRuby应用现在可以将它们自己的监控信息通过JMX系统导出,这些信息当然随后可以被诸如JConsole这样的工具所浏览。

最后,Sasada Koichi注意到Ruby 1.9.0-2会及时为RubyKaigi而发布,也就是在2008年6月20日左右。等到正式发布之时,我们会得到更多关于修改的细节,不过关于Ruby 主版本修改记录的概览显示,RubyGems和RDoc 2.0都有更新。

另一个可能在这次或未来发布版中出现的变化,是将test/unit替换为了Ryan Davis的miniunit。Ryan最近发布了miniunit 1.2,并呼吁用户认识到它和test/unit的不同。Ryan解释了如何使用miniunit:
% sudo gem install miniunit
% sudo use_miniunit yes

第二条命令将会将symlinks安装到你的sitelib目录中。这发生在stdlib dir in $LOAD_PATH,所以这不会影响test/unit。你也可以通过提供"no"作为参数,将symlinks转出。这样既容易又安全。
这一发布版中加入了许多美妙的东西,主要有: 
 * 有用的新断言,如assert_includes
 * 每一句断言提供了相反的镜像语句,如refute_empty ary
 * 加入了mini/spec和mini/mock,它们可以和mini/test共同使用
对于Ruby IDE的开发者以及使用custom test-runners的人们来说,需要注意以下事项:
注意:如果在尝试将Ruby1.9.0-2集成到某个GUI IDE或像komodo这样的test-runner时遇到问题,请不要觉得这是Ruby1.9.0-2的bug。Ruby1.9.0-2并不保证与这些工具的兼容性,而只保证支持你编写的测试本身。

如果你不熟悉test/unit,那么请和我们一起回顾一下历史,原先test/unit是被分离出来做为一个gem包。

查看英文原文:Ruby VM Roundup: MacRuby 0.2, JRuby JMX, Ruby 1.9

相关赞助商

InfoQ中文站Ruby社区,面向Web和企业开发的Ruby,主要关注Ruby on Rails,通过新闻、文章、视频访谈和演讲以及迷你书等为中国Ruby社区提供一流资讯。

没有回复

回复

独家内容

虚拟化导论

人们很容易想当然的以为虚拟化技术仅仅应用于服务器。而在现实中,虚拟化这一苏醒的概念正被运用于各个层面,其中包括网络,存储以及应用基础架构。在这篇导论中,InfoQ将深入每个方面,详尽向您描述虚拟化技术的运用以及其优点与不足。

用户故事估算技巧

作为开发者,同时也是ThoughtWorks的咨询师,Jay Fields总结了自己估算用户故事的有效技巧。

InfoQ案例研究:纳斯达克市场回放

在这篇案例研究中,InfoQ对Adobe AIR和Amazon的简单存储服务(Simple Storage Service ,S3)在NASDAQ市场回放程序(NASDAQ Market Replay)中的应用进行了详细的分析。

Hadoop基本流程与应用开发

本文介绍了Hadoop的基本流程、业务场景、代码范例以及集成测试。本文是《分布式计算开源框架Hadoop入门实践》三部曲的最后一部。

SOA在互联网系统中的应用

本视频对SOA在互联网系统中的应用进行了探讨,主要以支付宝在SOA的实践为例,主题从敏捷的应用程序(对象与组件)到敏捷的企业系统(应用集成与面向服务),再到敏捷的生态圈(网关与开放平台)。

用数字沟通——来自敏捷精灵的忠告

因为不知道如何反击,技术人员不得不听从业务人员的要求。这已经是老生常谈了。问题何在?开发人员用数字主要是进行计算的,而业务人员使用数字辅助决策。在下面的故事中,“敏捷精灵”鼓励一个开发人员用数字来描述与计算无关的问题。

Hadoop中的集群配置和使用技巧

本文介绍了Hadoop如何配置分布式框架运行环境,同时特别讲解了其中的一些细节。Hadoop可以单机跑,也可以配置集群跑,这里主要重点说一下集群配置运行的过程。本文是Hadoop入门实践三部曲的第二部。

JavaScript多线程编程简介

虽然有越来越多的网站在采用AJAX技术,但是开发复杂的AJAX应用仍然是个难题。本文探索了如何应用多线程缓解其中一些问题。