- 论坛徽章:
- 1
|
一直用Dancer,最近由于Dancer的一些问题,多次尝试改换Mojolicious。但最终还是决定继续用Dancer了。
Mojolicious的作者以前是开发Catalyst的,独自一人完成的Mojolicious,看到很多地方提到Mojolicious优势的时候,说这个模块没有任何一个依赖性模块。在我看来,这正是它的一大缺点。
我提两个地方是我个人觉得它做的最可恶的地方,一个是模板,Mojolicious用的是自己的模板语言,而且好像并不支持其他模板语言,这意味着现有的项目需要做修改才能使用Mojolicious,这个太不方便了,至少应该支持其他模板语言。第二个是JSON。Mojolicious是自己写模块操纵JSON的,实际上,Mojolicious是自己写了所有工具模块,最终实现了“没有任何一个依赖性模块”。不知道作者是出于什么考虑,但现在这年代做软件不应该这样的。放着成熟的现成的模块不用,自己写一切,这就是risk使用者的产品,可能正是因为此去年Mojolicious因为漏洞受到攻击,还过了段时间作者才发补丁。
Mojolicious的优点也非常明显,http://mojolicio.us/首页上已经把优点都写全了。个人认为的优点有2个,第一是AnyEvent/libev的支持,这对我很有意义。第二个是$self->ua->get($url)->res->dom->html->head->title->text。呵呵,挺新颖。
Dancer和Mojolicious相比差在AnyEvent/libev的支持,但实际Dancer也可以支持一些AnyEvent。这方面我没有深入探究,所以不好多说。另外Dancer是法国人做的,个人觉得Dancer还是很反应法国人特点的,Dancer从名字到运行的代码方式,甚至是关键字,都反映出法国人的性格特点,elegant. 只是实在担心法国人的代码水平,Dancer要是德国人或俄罗斯人写的就更完美了。
上面提到的Mojolicious的那两个缺陷Dancer都做的非常好。个人认为Dancer最大的优点是简单,开始我只大概扫了一眼Dancer的文档,连蒙带猜上手非常快。
权衡之后,还是继续乖乖用Dancer了。
|
|