Moose::Cookbook::FAQ 0.14 review

by on

Moose::Cookbook::FAQ is a frequenty asked questions about Moose. Is Moose "production ready"? Yes and No

License: Perl Artistic License
File size: 83K
Developer: Stevan Little
0 stars award from

Moose::Cookbook::FAQ is a frequenty asked questions about Moose.

Is Moose "production ready"?

Yes and No. Currently I have one web application in production using Moose, and at $work we are re-writing our core offering to use Moose. Several other people on #moose either have sites in production which use Moose, or are in the process of deploying sites which use Moose.

The biggest barrier to widespread use of Moose in production right now is speed of development and speed of execution.

Since development is still happening, regular upgrades are a fact of life. This can be hairy in production, so if this makes you quake with fear, you might want to wait a few months.

Then comes speed of execution. Moose is actually pretty fast, and makes great effort to stay out of your way when you don't want it there. However, certain parts of Moose are slow, such as compile time setup, introspection and object construction (only because it uses introspection). See "Is Moose slow?" below for a deeper discussion on the subject.

Is Moose's API stable?

Yes and No. The external API, the one 90% of users will interact with, is very stable and any changes will be 100% backwards compatible. The introspection API is mostly stable, I still reserve the right to tweak that if needed, but I will do my absolute best to maintain backwards comptability here as well.

Is Moose slow?

Again, this one is tricky, so Yes and No.

First let me say that nothing in life is free, and that some Moose features do cost more than others. It is also the policy of Moose to only charge you for the features you use, and to do our absolute best to not place any extra burdens on the execution of your code for features you are not using.

Next, I will point out again that we are still in the "early adopter" phase, so speed it not that important yet. We are actually optimizing for "theoretical correctness" first, and we will optimize for speed later. It has been our experience that taking this approach allows for greater optimization capacity.

And lastly, I want to reassure the speed junkies out there that we are working on it.
We have the immutable classes in Class::MOP, but which are not yet integrated with Moose. These allow you to "close" a class and then for many of it's more expensive methods to me memoized. Our tests indicated a performance comparable (and in some instances exceeding) that of hand-coded Perl.

We are also discussing and experimenting with Module::Compile, and the idea of compiling highly optimized .pmc files. And we have also mapped out some core methods as canidates for conversion to XS.


Moose::Cookbook::FAQ 0.14 keywords