For the record Dancer and Dancer2 are completely separate toolkits. Dancer2 is *not* version 2 of Dancer. Dancer has been described by the project leads as "a big collection of abuses of globals." On the other hand, Dancer2 is by far the most Perlish framework I have used.
Mojolicious has also undergone breaking changes, but uses major version numbers, and then deprecates/uses an EOL schedule for earlier versions. So you wind up having to pin a version anyway.
I use Mojo at work and it works. I dislike a lot of things about it, all mostly centered around the personality/culture of its core development group. For example, Mojo 8 includes Mojo::DynamicMethods.pm, which despite its doc breaks our code using can ...
monkey_patch $dyn_pkg, 'can', sub {
my ($self, $method, @rest) = @_;
# Delegate to our parent's "can" if there is one, without breaking
+ if not
my $can = $self->$caller_can($method, @rest);
return undef unless $can;
no warnings 'once';
my $h = do { no strict 'refs'; *{"${dyn_pkg}::${method}"}{CODE} };
return $h && $h eq $can ? undef : $can;
Talk about EETOOMUCHMAGIC!
Adopting Mojo is a bit like getting jumped into the mob: there's no exit, and the rules are the rules. I find Dancer2 app development to be much more intuitive, light, and fun.
The way forward always starts with a minimal test.
|