论坛首页 编程语言技术论坛

Merb新闻和社区站点

浏览 23501 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-11-10  
看问题的角度不同...看到的东西也不同...

merb的代码风格以及内部实现对于rails程序员有吸引力么?我看未必,况解rails早已不是一个人在作了,我们公司已经为rails框剪贡献了不知道多少补丁.(其中就包括我 :-))

这些都是因为大家在具体项目中碰到了具体的问题,解决后提交给rails作为一个普遍适用的解决方案,所以我在碰到问题的时候才会去看一下rails的具体实现,更多时候是思考问题本身.记得去年shanghaionrails第三次聚会,一个演讲主题就是关于merb,当时的现状是rails程序员难找,merb的就更加难了...现在呢?

我推测merb的作者在创建之初,可能为了两个目的,第一是证明自己(无可厚非),其二是为了解决某些特定的问题,而这些问题是rails不能或者没有做得很好的...所以如果要研究merb,真得要明白到底当初作者遇到了什么问题...

而现在要面对的问题是,merb究竟是要吸引rails程序员倒戈?还是吸引更多的初级/入门程序员开始用ruby来作web开发并有可能产生更多的人才积累?就这一点,上面说道了,merb做得并不友好,rails稍微强一点,而就我观察,目前作rails的人,仍然需要把rails用的更好,没有作rails/merb的人,最好的选择仍然是rails.

好吧,开始"不讲道理,只摆事实",我喜欢快客王的关于什么是"干货"的定义.
--------------------------------------------------
干货指实实在在的,没有水分的,形容有真材实料

有一很著名的翻译:
http://upload.mop.com/user/2005/09/22/0535d579.jpg
--------------------------------------------------


我们公司里面有项目组用merb作了东西,可惜我没有参加,所以没有merb实际的项目经验,但是我手头上一个项目,需要处理用户大批量数据上传,而我们用的服务器结构是经典的nginx+mongrel...一个大文件会塞住一个mongrel进程,于是项目组成员用merb开发了一个独立的套件用来处理文件上传,如果我没有记错的话是利用了merb的thread safe controller dispatch,可是后来发现问题的真正本质后...决定用flash客户端组建直接upload到S3...于是我们跟merb就说拜拜了.
1 请登录后投票
   发表时间:2008-11-10   最后修改:2008-11-10
引用
merb的代码风格以及内部实现对于rails程序员有吸引力么?我看未必


举个例子?

引用
况解rails早已不是一个人在作了,我们公司已经为rails框剪贡献了不知道多少补丁.(其中就包括我 :-))


merb和rails都有社区.

引用
这些都是因为大家在具体项目中碰到了具体的问题,解决后提交给rails作为一个普遍适用的解决方案,所以我在碰到问题的时候才会去看一下rails的具体实现,更多时候是思考问题本身.


不错,框架的内部实现并不是程序员首要关注的,他们关注的,是如何解决问题.
但是,你们也给rails贡献过代码,说明修改内部实现也是有需求的.
更为重要的是,在外部表现趋于一致的情况下(实际外部表现上merb也比rails好很多),内部结构对于未来的发展起了至关重要的作用.
我把merb比喻成rails 3.0也是出于这个观点.

引用
记得去年shanghaionrails第三次聚会,一个演讲主题就是关于merb,当时的现状是rails程序员难找,merb的就更加难了...现在呢?

人员问题需要考虑,也很重要. 但需要将其与技术因素分开讨论. 我前面也没有将功能和性能夹杂起来讨论.

引用
我推测merb的作者在创建之初,可能为了两个目的,第一是证明自己(无可厚非),其二是为了解决某些特定的问题,而这些问题是rails不能或者没有做得很好的...所以如果要研究merb,真得要明白到底当初作者遇到了什么问题...


通过作者的博客应该有迹可循. 不过有这功夫,还不如小试一下呢,merb的水不深,种种揣测很快就能证实对还是不对.

引用
而现在要面对的问题是,merb究竟是要吸引rails程序员倒戈?还是吸引更多的初级/入门程序员开始用ruby来作web开发并有可能产生更多的人才积累?


瞅两眼merb是啥后,就很好做判断了.

引用
就这一点,上面说道了,merb做得并不友好,rails稍微强一点


哪一点?

引用
而就我观察,目前作rails的人,仍然需要把rails用的更好,没有作 rails/merb的人,最好的选择仍然是rails.

merb目前资料过少,从事的人也少. 初学者从rails入手比较好. 用rails的人,当然需要把rails用的更好. 但用开放的心态了解一门新技术也没错吧. 在"把rails用的更好"的路上,即使不用merb,也会得到大量启发的.

引用

我们公司里面有项目组用merb作了东西,可惜我没有参加,所以没有merb实际的项目经验,但是我手头上一个项目,需要处理用户大批量数据上传,而我们用的服务器结构是经典的nginx+mongrel...一个大文件会塞住一个mongrel进程,于是项目组成员用merb开发了一个独立的套件用来处理文件上传,如果我没有记错的话是利用了merb的thread safe controller dispatch,可是后来发现问题的真正本质后...决定用flash客户端组建直接upload到S3...于是我们跟merb就说拜拜了.


卡卡,大量文件上传的本质是... merb的本质是...
0 请登录后投票
   发表时间:2008-11-10  
liusong111 写道
merb目前资料过少,从事的人也少. 初学者从rails入手比较好. 用rails的人,当然需要把rails用的更好. 但用开放的心态了解一门新技术也没错吧. 在"把rails用的更好"的路上,即使不用merb,也会得到大量启发的.

 

    这是merb的现状,不管是Rails还是merb都会给我们很多启发。liusong111比我走在前面,希望以后多交流。

 

 

 

0 请登录后投票
   发表时间:2008-11-10  
sigh...
0 请登录后投票
   发表时间:2008-11-10  
liusong指出Rails的内部API不稳定的确是个Rails讨厌的问题,每次版本一升级,很多底层API都改了,造成很多依赖插件和补丁被废。

不过现在比较Rails vs Merb 还是太早了,这两个框架都还没有发展到充分成熟的程度,过几年再PK吧。

其实我还是想知道Merb究竟有什么独到之处,听liusong的介绍,看来和Rails差不多,但是代码更干净、结构更紧凑和稳定、API细节更简洁。应该是这样吧?
0 请登录后投票
   发表时间:2008-11-10  
关于robbin说的,关于底层api都改的问题,
我倒是觉得rails可以提供一个migration的机制,
比如rake rails:update任务里头加入把你的代码
统统规则替换为新的api,其实就是重构的问题。
  这样解决要比提供向后兼容的api要好很多.(其实我们
作过的都知道,提供向后兼容的api,不仅开发麻烦,而且
还限制新框架的发展和创造性).
0 请登录后投票
   发表时间:2008-11-10  
http://merbist.com/2008/11/09/merb-1-0-released/
这儿有"quickly look at why Merb is awesome",无论如何多一个强有力的竞争者对Rails来说都是一件好事,这篇文章里面还提到Matz的team正在开始优化Ruby的GC,Ruby前景越来越光明了。
0 请登录后投票
   发表时间:2008-11-10  
让我这个没有实际工作经验的失业者说几句我区分rails和merb,首先想到的就是:
1,Merb社区会否比Rails社区更开放,提供更多帮助?
之前都说过Rails core死活不肯实际一些东西,很多人都不爽这一点,并且如果大家看过Zed shaw这家伙的blog就会知道Zed抱怨了上万次Rails社区没对他提供过帮助是吧(据Zed称,DHH对mod_rails提供了不少),如果你的业务达到一定的程度,你自然而然会deept into他的core(核心),这时社区里的核心群体鸟都不鸟你的,在个人来说,肯定不好受是吧。
看merb的core成员的一些文章,我觉得他们极期大度
[援引Brainspl.at的一段话来证明他们有多大度:
I wrote Merb for a reason, if Merb’s philosophies agree with your tastes then great, use Merb. If Rails is your thing then that’s great too! We do not need a monoculture]
一种语言好不好,内部的实现我觉得还不是根,根本是背后的人,到底有多少有能力的人在为他添枝加叶。比较一种语言,我觉得非常有必要加上他的社区支持。

2,既然Merb是不满于raisl的一些东西,那么肯定是有它的长处(至少在作者自身看来)。




0 请登录后投票
   发表时间:2008-11-10  
phoenix520 写道
http://merbist.com/2008/11/09/merb-1-0-released/
这儿有"quickly look at why Merb is awesome",无论如何多一个强有力的竞争者对Rails来说都是一件好事,这篇文章里面还提到Matz的team正在开始优化Ruby的GC,Ruby前景越来越光明了。


看了这篇文章,对Merb兴趣更浓厚了,从这篇博客的介绍来看,Merb有如下优点:

1、merb有一个slice的概念,从django的模块化概念借鉴而来,可以在多个web项目之间进行代码的共享和复用,这个功能非常好!而且是目前Rails所不具备的功能,这个功能在大规模团队的应用开发当中会很有用。

2、承诺保持public API的稳定性,即使更新,也会保持好的文档描述。这又是一个Rails的软肋。

3、比Rails轻便,节省内存、性能更好

4、Matz的最爱。说Matz更喜欢merb不自己造DSL的做法(Matz言下之意显然是不爽Rails的DSL扩展了ruby的语法)

其实我对slice很感兴趣,这个非常好,OK,有空的时候看看merb。
0 请登录后投票
   发表时间:2008-11-10   最后修改:2008-11-11
gem install merb


一下给我安装了40个gem,吓得我不轻呀!这模块化的程度也太高了,模块拆的也太细致了也。当然有些gem看着名字就挺不错。

D:\Download>gem install merb
Successfully installed merb-core-1.0
Successfully installed ZenTest-3.11.0
Successfully installed RubyInline-3.8.1
Successfully installed sexp_processor-3.0.0
Successfully installed ParseTree-3.0.2-x86-mswin32-60
Successfully installed ruby2ruby-1.2.1
Successfully installed merb-action-args-1.0
Successfully installed merb-assets-1.0
Successfully installed merb-slices-1.0
Successfully installed merb-auth-core-1.0
Successfully installed merb-auth-more-1.0
Successfully installed merb-auth-slice-password-1.0
Successfully installed merb-auth-1.0
Successfully installed merb-cache-1.0
Successfully installed merb-exceptions-1.0
Successfully installed highline-1.5.0
Successfully installed diff-lcs-1.1.2
Successfully installed templater-0.3.5
Successfully installed merb-gen-1.0
Successfully installed haml-2.0.4
Successfully installed merb-haml-1.0
Successfully installed merb-helpers-1.0
Successfully installed mailfactory-1.4.0
Successfully installed merb-mailer-1.0
Successfully installed merb-param-protection-1.0
Successfully installed addressable-1.0.4
Successfully installed data_objects-0.9.6
Successfully installed dm-core-0.9.6
Successfully installed dm-migrations-0.9.6
Successfully installed merb_datamapper-1.0
Successfully installed merb-more-1.0
Successfully installed do_sqlite3-0.9.6-x86-mswin32-60
Successfully installed dm-timestamps-0.9.6
Successfully installed uuidtools-1.0.4
Successfully installed dm-types-0.9.6
Successfully installed dm-aggregates-0.9.6
Successfully installed dm-validations-0.9.6
Successfully installed randexp-0.1.4
Successfully installed dm-sweatshop-0.9.6
Successfully installed merb-1.0
40 gems installed


这其中有些入rubyInline明显不能在Windows上面跑嘛。看来在Windows上面还真不受人待见。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics