这是 Moose Perl 的一个很好的替代品吗?

Is this a good alternative to Moose Perl?

我一直在寻找 Moose(现代面向对象的 Perl)的替代品 因为 Moose 很慢,我已经看到几个与此问题相关的 post,我不想那样。 示例来自同一创作者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 的一个不错的选择和替代品吗?有人测试过这个软件吗?

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

谢谢。

注意:我忘了说我知道 Moo、Mouse 等,也许存在更好的东西?

MOP is very low level, Moxie 以此为基础;但它仍然是一个概念证明。

已经在生产中测试了更快、更轻的替代方案:Moo and Mouse

您在什么情况下使用 Moose 并发现它很慢?当然会有开销,但大部分发生在启动时(编译);然后,在运行时,大多数功能都是廉价的(只要您使 类 不可变),如 the documentation 中所述。随着时间的推移,Moose 已成为面向对象编程的事实标准,并且它拥有非常非常广泛的生态系统(在 metacpan returns 上搜索 MooseX 有 820 个结果)。不要过早放弃。

如果您确实需要更快的启动时间(例如在 vanilla CGI 环境中),Moose 最相关的替代方案是 Moo,Minimal Object Orientation。它非常轻巧,没有 XS 依赖,同时实现了 Moose 的一个重要子集(此外,它的语法与 Moose 完全兼容,因此如果您需要 Moo 中缺少的某些功能,您可以随时升级到 Moose) .它还拥有丰富的生态系统。