NAME

MooX::Options::Docs::Philosophy - Why another option module ?

VERSION

version 4.001

DESCRIPTION

I explain here the reason why I have created this module.

Why not simply used MooseX::Getopt

The main issue

I was building a tools, with many roles with a lots of attributes. Sometimes I need some of them present in the command line, but most of them should only be used inside the package.

MooseX::Getopt automatically setup all attributes to be a command line option. I have to check all tools, to see if I haven't forget to disable one attribute, and each time I add a new one, I need to go through all command line to be sure that this attribute wasn't present in the command line.

Moving to Moo

I was moving to Moo, and fail to find MooX::Getopt. The main reason is a simpler class system, fast and light.

The idea

I love to make stuff explicitly. If I want an attribute to be an option from the command line, I want to be able to do it explicitly. When I read the code it is obvious.

The conception

Then I have discuss with Matt S. Trout (mst), explain the situation, and after many release, we have made this module. It's clear, easy to use, and completly explicit.

Keep going

Since then I have keep that philosophy, and try ensure that any modules is always explicit, without any black magic.

The next stuff I'm on, is Jedi. I have ton of issues to make simple stuff with Dancer2 and because of the DSL system I wasn't able to do something simple and explicit. And well, also hacking this stuff was a nightmare.

So on the same philosophy, Jedi is an explicit Web Framework, without any DSL. Simple to understand, to hack, to maintain.

SEE ALSO

MooX::Options

BUGS

Please report any bugs or feature requests on the bugtracker website https://github.com/celogeek/MooX-Options/issues

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHOR

celogeek <me@celogeek.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by celogeek <me@celogeek.com>.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.