
运用Ruby纤程进行异步I/O:NeverBlock和Revactor
Rails 2.2已经将线程安全提上日程,但是阻塞I/O程序库使得必须要需要运行多个Ruby实例才行吗?我们来看看非阻塞I/O和Ruby 1.9的纤程(Fibers)是如何来解决这个问题的。我们对来自NeverBlock项目的Mohammad A. Ali和来自Revactor项目的Tone Arcieri进行了访谈。

Rails 2.2已经将线程安全提上日程,但是阻塞I/O程序库使得必须要需要运行多个Ruby实例才行吗?我们来看看非阻塞I/O和Ruby 1.9的纤程(Fibers)是如何来解决这个问题的。我们对来自NeverBlock项目的Mohammad A. Ali和来自Revactor项目的Tone Arcieri进行了访谈。

在Ruby世界中流行着一个误解:Ruby没有调试器。这是明显的错误——Ruby不但有调试器,还有供调试器用的GUI和API。InfoQ仔细调查了Ruby世界中调试器的现状——发现Ruby的调试功能支持已经很好了。

随着Erlang对Actors的普及,Rubinius增加了多虚拟机技术(Multi-VM),还有Ruby 1.9加入了另一种并发机制——纤程Fibers(协程),Ruby的并发程序世界正逐渐扩大。就此我们采访了MenTaLguY。他致力于Ruby世界中的Rubinius,JRuby以及并发程序的许多方面。
Ruby的标准化工作正在持续推进:2008年正式宣布后,已经发表了Ruby标准的第一版草稿。这对RubySpec(可执行的Ruby规范)和其他Ruby实现意味着什么呢?
Rails 3的首个beta版已经发布。Rails 3对代码进行了大规模的重写,带来了稳定的API和来自Merb的设计理念,拥有更清晰的内部实现和性能上的提升等等。InfoQ将带您了解Rails 3的变化,以及各个Ruby实现对它的支持情况。
Rubinius 1.0 RC2添加了二进制安装程序,Ruby 1.9.2将支持DTrace。IronRuby离1.0又近了一步,SharpDevelop 3.1开始支持IronRuby。此外,WEBRick用户应该考虑升级到最新的Ruby 1.8.x和1.9.1,因为最近发现了一个缺陷。
Rubinius刚发布了1.0的第一个候选版本,兼容Ruby 1.8并且速度与之相当。InfoQ采访了Evan Phoenix,讨论了他们是如何做到这一步的,以及Rubinis是否能运行Rails。
MacRuby 0.5 Beta 2改善了兼容性,针对Ahead of Time(AOT)编译和构建独立应用程序增加了新的工具。Rubinius 0.13使用LLVM、JIT和新的编译器提升了性能。
MacRuby 0.5 RC1即将发布了,该版本还增加了对Grand Central Dispatch的支持。新版的IronRuby也已发布,而Ruby 1.9.2可能要延期了,同时Rubinius也要兼容于Ruby 1.8.7了。