这是Moose Perl的好选择吗?

时间:2018-11-19 15:31:52

标签: perl oop moose mop

我一直在寻找Moose(现代面向对象的Perl)的替代产品 因为Moose的速度很慢,所以我已经看到了几个与此问题相关的帖子,所以我不想这么做。 来自同一创作者的示例https://www.youtube.com/watch?v=ugEry1UWg84&feature=youtu.be&t=260

所以我从驼鹿的同一位创造者那里找到了这种选择:

https://metacpan.org/pod/MOP#DESCRIPTION MOP-Perl 5的元对象协议

该模块以最小的开销实现了Perl 5的元对象协议,并且最终没有非核心依赖。

使用UNIVERSAL :: Object:

https://metacpan.org/pod/UNIVERSAL::Object

这是Moose的一个不错的选择吗?有人可以测试此软件吗?

相关文章: https://www.perlmonks.org/?node_id=1220917

谢谢。

注意:我忘了提起我对Moo,Mouse等的了解,也许存在更好的东西吗?

2 个答案:

答案 0 :(得分:7)

MOP的级别很低,Moxie是基于它的;但这仍然是概念的证明。

MooMouse已在生产中进行了测试,速度更快,重量更轻。

答案 1 :(得分:1)

您在哪种情况下使用Moose却发现它运行缓慢?当然会涉及开销,但是大多数开销是在启动时(编译)发生的;然后,在运行时,大多数功能都很便宜(只要您使类不可变即可),如the documentation中所述。随着时间的流逝,Moose已成为面向对象编程的事实上的标准,并且它具有非常非常广泛的生态系统(在metacpan上对MooseX进行搜索会返回820个结果)。不要早早放弃。

如果您确实需要更快的启动时间(例如在香草CGI环境中),则Moose最相关的替代方法是Moo,即最小对象定向。它确实很轻巧,没有XS依赖关系,同时实现了Moose的重要子集(此外,它的语法与Moose完全兼容,因此如果您需要在Moo中缺少的某些功能,则可以在以后随时升级到Moose) 。它还拥有丰富的生态系统。