Merb将被集成到Rails 3.0中

Ruby Web框架世界中的大事件:Merb将与Rails集成了。Merb是由Ezra Zygmuntowicz创建的,他谈到了这个改变:

我们两个团队已经开始讨论能否求同存异了。我们已经就如何将merb的最佳特性集成到rails-3.0中设定了一个路线图。我认为该计划会使Rails成为世界上最好的框架。它将是merb最佳实践的结合体,同时仍然会保持Rails的美感,这也是人们喜欢Rails的一个地方。

你将在今年春天看到这个有冲劲、快速、高效的Rails(Merb)版本!

Rails的创建者David Heinemeier Hansson说到Rails的下一个版本将是Rails 2.3,之后就是Rails 3.0了。

Rails 2.3一触即发。我们希望它能在1月份发布。该版本有很多创新性。但当这个版本完成后,所有的注意力都将集中到Rails 3上。

InfoQ最近采访了Yehuda Katz,他谈到了很多现在正在被集成到Rails中的概念。David的声明中谈到了将Merb集成到Rails 3中的具体变化,同时Merb的Yehuda Katz也声明了这一点,例如公共API:

从Rails 3开始,Rails将拥有一个定义好的公共API,同时还带有一个测试套件。这是与Merb的一个主要差别。凭借该公共API,用户和插件开发者将拥有一个更加干净、稳定的API进行构建。这也会在很大程度上降低版本与版本之间插件的崩溃次数。

David还解释了这背后的原因:

严格的API:当Rails更新后会有大量的插件崩溃,这是因为我们并不清楚插件应该深入到内核中的什么地方才是安全的,同时也不知道他们何时会monkeypatching及崩溃。Merb开发者提交了一个公共API及其测试以确保插件不会崩溃。他们要向人们证明其想法并向Rails 3提供一个经过测试且文档化良好的API以进行扩展,这样插件就不会因升级而崩溃。

Rails 3还会秉承Merb对模块化的专注,最近在Merb和Rails社区中已经对模块化进行了热火朝天的争论了。简言之,我们会创建rails-core,它反映了merb-core,正如Yehuda所述,它是Web框架的一个最小版本:

我们将对Rails进行翻新以使人们可以用一个“内核”来快速上手,该内核是Rails的一个版本(就像Merb现在的核心生成器),它启动时不带有任何模块,同时它只会选择那些对于你的应用来说重要的部分。当然,Rails仍然会将“stack”版本作为默认的版本(就像Merb1.0之后所做的那样),但我们的目标是让人们像使用Merb那样来轻松使用Rails。

David说到Rails 3将继续提供默认子系统,但同时还会与其他系统协作良好:

框架不可知:在stack中Rails对每个问题总有一个默认的答案。如果你不介意测试框架,那么你会用到test/unit。如果你不介意使用哪个ORM,那么你会用到Active Record。但有些人对此还是介意的并想用其他的实现。一些人想用RSpec进行测试,一些人想用Sequel或Data Mapper进行ORM,一些人喜欢用Haml进行templating,而有些人还喜欢用jQuery实现Ajax。所有这些人都会感受到Rails正在张开双臂来拥抱他们。是的,我们有默认实现,但我们不应该歧视其他的选择。

接下来的变化会将Merb的性能带到Rails 3中。

现在的一个主要问题当然就是:开发者怎样使用Merb呢?Yehuda说到:

特别地,我们会在Merb的发布中加上不建议使用的通知,同时还会加上迁移机制以帮助开发者跟踪将会出现在Merb 1.x与Rails 3之间的改变。我们希望大量过度期的发布会慢慢接近于Rails 3,同时也期望Merb的一部分内容(特别是helpers)可以移植到Rails 3上以便进一步减少移植的困难。

坦率的说:我们不会放弃Merb项目。有很多运行在Merb上的产品应用,因此我们还需要花时间修复其bug并对未来做好规划。

Ezra还补充到,EngineYard(长期资助Merb)对平滑迁移很感兴趣:

我们将为merb应用提供一个升级到Rails 3.0的指南。在[EngineYard]内部还运行着一些merb应用,因此我们自己的应用也需要这样一个指南。

Merbist博客上也有一些关于该集成的信息。

对于该集成,你是怎么看的呢?

查看英文原文:Merb Will Be Merged Into Rails 3.0

你可能感兴趣的:(Merb将被集成到Rails 3.0中)